详解C语言分支与循环语句
分支语句
- if else
- switch
循环语句
- while
- for
- do while
goto语句
文章目录
- 1.什么是语句
- 2.分支语句(选择结构)
- 2.1 if语句
- 2.1.1 悬空else
- 2.1.3 练习
- 2.2 switch语句
- 2.2.1 在switch语句中的break
- 2.2.2 default子句
- 3.循环语句
- 3.1 while循环
- 3.1.1 while语句中的break和continue
- 3.2 for循环
- 3.2.1 语法
- 3.2.2 break和continue在for循环中
- 3.2.3 for语句的循环控制变量
- 3.2.4 一些for循环的变种
- 3.2.5 试题
- 3.3 do...while()循环
- 3.3.1 do...while()循环语法
- 3.3.2 执行流程
- 3.3.3 do语句的特点
- 3.3.4 do while 循环中的break和continue
- 3.4 习题
- 3.4.3 猜数字游戏
- 4.goto语句
1.什么是语句
在C语言当中语句可以分为以下5类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
控制语句 用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句符号符组成,C语言有9种控制语句:
1.条件判断语句也叫分支语句:if else 语句 switch语句
2.循环执行语句:for语句 while语句 do while语句
3.转向语句:break语句 continue语句 return语句 goto语句
2.分支语句(选择结构)
这样吧,你先在steam搜索“千恋*万花”点击购买安装好后立即运行打开千恋万花,在主页面点击开始游戏进入游戏页面,然后依次选择“说实话”、“不好说”、“觉得很可爱”、“单独行动”、“摸摸头”、“有点担心”和“安抚”进入丛雨路线
没错,galgame中的选项就是选择语句。
达成对应的条件后就进入对应的结果。
2.1 if语句
if语句的语法结构
//单分支
if(exp1)语句;
//双分支
if(exp1)语句1;
else语句2;//多分支
if(exp1)语句1;
else if(exp2)语句2;
else语句3;
实例演示:
//代码1
#include <stdio.h>
int main()
{int age = 0;scanf("%d",&age);if(age<18){printf("未成年\n");}else{printf("已成年\n");}return 0;
}//代码2
#include <stdio.h>
int main()
{int age = 0;scanf("%d",&age);if(age<18){printf("青少年\n");}else if(age>=18&&age<30){printf("青年\n");}else if(age>=30&&age<60){printf("中年\n");}else if(age>=60&&age<80){printf("老年\n");}else{printf("寿星\n");}return 0;
}
在C语言中0表示假,非0表示真
值得注意的是:If只能管理后面一条语句,所有我们要多用{}进行匹配,防止使人误解.
{}就是一个代码块。
2.1.1 悬空else
看下面这个代码:
#include <stdio.h>
int main()
{int a = 0;if(a)if(a==0)printf("hello\n");elseprintf("hi\n");return 0;
}
你觉得会打印什么呢?
答案是:什么都不打印,这里的else是和第二个if进行匹配的。
为了避免这种情况,我们要让代码好好对齐或者加入{}来避免误解
//代码对齐
#include <stdio.h>
int main()
{int a = 0;if(a)if(a==0)printf("hello\n");elseprintf("hi\n");return 0;
}//利用{}
#include <stdio.h>
int main()
{int a = 0;if(a){if(a==0)printf("hello\n");elseprintf("hi\n");}return 0;
}
else的匹配:else是和离他最近的if匹配的
2.1.3 练习
1.判断一个数是否是奇数。
2.输出1~100之间的奇数。
//1.判断一个数是否是奇数。
#include <stdio.h>
int main()
{int a = 0;scanf("%d",&a);if(a%2==1){printf("是奇数!\n");}else{printf("不是奇数!\n");}return 0;
}//2.2.输出1~100之间的奇数。
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=100){if(i%2==1){printf("%d ",i);}++i;}return 0;
}//方法2
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=100){printf("%d ",i);i+=2;}return 0;
}
2.2 switch语句
switch语句也是一种分支语句,常常用于多分支的情况。
switch(整型表达式)
{case 整型常量表达式://case是整型常量表达式 也可以是char 因为底层为ASCII码也算语句;
}
比如,让你根据数字输出对应的星期。
#include <stdio.h>
int main()
{int day = 0;scanf("%d",&day);switch(day){case 1:printf("星期一\n");case 2:printf("星期二\n");case 3:printf("星期三\n");case 4:printf("星期四\n");case 5:printf("星期五\n");case 6:printf("星期六\n");case 7:printf("星期日\n");}return 0;
}//当我们输入5时
/*
打印结果:
星期五
星期六
星期日
*/
这是为什么呢?因为在switch中我们只有利用了break才能实现真正的分支。
2.2.1 在switch语句中的break
#include <stdio.h>
int main()
{int day = 0;scanf("%d",&day);switch(day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;}return 0;
}
//当我们输入5时
/*
打印结果:
星期五
*/
break语句的实际效果是把语句列表划分为不同的分支部分。
思考:如果有人在这个程序运行时输入8会怎么样?
2.2.2 default子句
答案:当输入的值与所有case都不匹配时,就直接退出switch,然后继续程序。
但是如果你不想要忽略不匹配这种情况。
你可以在语句列表中增加一个default子句。
可以写在任何一个case标签可以出现的位置,switch里面的判断可以没有顺序。
#include <stdio.h>
int main()
{int day = 0;scanf("%d",&day);switch(day){case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期日\n");break;default:printf("输入错误!\n");break;//建议加上 }return 0;
}
switch允许嵌套使用。
3.循环语句
- while
- for
- do while
简单的循环结构
3.1 while循环
while(条件)语句;
当条件满足时,循环就会执行下去。
while语句执行流程:
打印1-10数字
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 5 6 7 8 9 10
3.1.1 while语句中的break和continue
break介绍
在循环中只要执行了break,就会直接终止循环,直接跳出循环体。
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)break;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4
continue介绍
continue是用来终止本次循环的,也就是本次循环中continue后面的代码不会执行,
而是直接跳转到while语句的判断部分。进入下一次循环。
//代码1
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)continue;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 4 4 4 4 4 4 4....//代码2
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){i++;if(i==5)continue;printf("%d ",i);}return 0;
}
//打印结果
//2 3 4 6 7 8 9 10
3.2 for循环
了解完while循环后,for可以说是while的整合。
3.2.1 语法
for(expr1;expr2;expr3)循环语句;
exp1
为初始化部分,用来初始化循环变量的。
exp2
为条件判断部分,用于判断循环终止的
exp3
为调整部分,用于循环条件的调整。
打印1-10
//代码1
#include <stdio.h>
int main()
{int i = 0;for(i = 1;i<=10;++i){printf("%d ",i);}return 0;
}
//打印结果:1 2 3 4 5 6 7 8 9 10//代码2
#include <stdio.h>
int main()
{for(int i = 1;i<=10;++i)//在里面初始化是c++里的写法,但在c99标准后引入{printf("%d ",i);}return 0;
}
//打印结果:1 2 3 4 5 6 7 8 9 10
for执行流程图
for与while循环的对比
#include <stdio.h>
int main()
{int i = 0;while(i<=10){printf("%d ",i);++i;}for(i = 1;i<=10;++i){printf("%d ",i);}return 0;
}
循环的3个必要条件,无论是while循环还是for都是有的,但是while的三部分比较分散。
查找修改就不够集中于方便,对此,for循环的风格更胜一筹。
3.2.2 break和continue在for循环中
可以发现的是,在for和在while循环里面是没有特别大区别的,但由于for独特的执行调整步骤和while还是略有差异
//continue在while
#include <stdio.h>
int main()
{//利用while循环int i = 1;while(i<=10){if(i==5)continue;printf("%d ",i);i++;}return 0;
}
//打印结果
//1 2 3 4 4 4 4 4 4 4 4....//continue在for循环
#include <stdio.h>
int main()
{//利用for循环int i = 1;for(i = 1;i<=10;++i){if(i==5)continue;printf("%d ",i);}return 0;
}
//打印结果
//1 2 3 4 6 7 8 9 10
for循环里的continue在跳过本次循环时,是无法跳过for()中的调整语句的。
3.2.3 for语句的循环控制变量
建议(不是必须):
1.不要在for循环体内修改循环变量,防止for循环失去控制
2.建议for语句的循环变量的取值采用 前闭后开区间的写法
int i = 0;
//前闭后开
for(i = 0;i<10;++i)
{}
//前闭后闭
for(i = 0;i<=9;++i)
{}
3.2.4 一些for循环的变种
#include <stdio.h>
int main()
{//利用for循环int i = 1;for(;;)//for省略判断即为判断恒为真{printf("hello\n");}//代码2int i = 0;int j = 0;//打印多少个hello呢?for(i = 0;i<10;++i){for(j = 0;j<10;++j){printf("hello\n");}}//100个//代码3int i = 0;int j = 0;//打印多少个hello呢?for(;i<10;++i){for(;j<10;++j){printf("hello\n");}}//10个//代码4 int x,y;for(x = 0,y = 0;x<2&&y<5;++x,++y)//使用多个变量控制循环{printf("hello\n");}return 0;
}
//打印结果
//hello hello hello...
3.2.5 试题
//循环多少次
#include <stdio.h>
int main()
{int i = 0;int k = 0;for(i = 0,k = 0;k=0;++i,++k)k++;return 0;
}//0次
3.3 do…while()循环
3.3.1 do…while()循环语法
do
{循环语句;
}while(表达式);
3.3.2 执行流程
3.3.3 do语句的特点
循环至少执行一次,使用场景有限,不常使用。
打印1-10
#include <stdio.h>
int main()
{int i = 1;do{printf("%d ",i);++i;}while(i<=10);return 0;
}
// 打印结果:
//1 2 3 4 5 6 7 8 9 10
3.3.4 do while 循环中的break和continue
//代码1
#include <stdio.h>
int main()
{int i = 10;do{if(i == 5)break;printf("%d ",i);}while(i<10);return 0;
}//代码2
#include <stdio.h>
int main()
{int i = 10;do{if(i == 5)continue;printf("%d ",i);}while(i<10);return 0;
}
3.4 习题
1.计算n的阶乘
2.计算1!+2!+…+10!
3.在一个有序数组中查找具体某个数n
4.编写代码,演示多个字符从两端移动,向中间汇聚。
//1.
#include <stdio.h>
int main()
{int n = 0;scanf("%d",&n);int ret = 1;for(int i = 1;i<=n){ret*=i;}printf("%d\n",ret);return 0;
}//2.1
#include <stdio.h>
int main()
{int sum = 0;for(int n = 1;n<=10;++n){int ret = 1;for(int i = 1;i<=n;++i){ret*=i;}sum+=ret;}printf("%d\n",sum);return 0;
} //2.2
#include <stdio.h>
int main()
{int sum = 0;int ret = 1;for(int n = 1;n<=10;++n){ret *= n;sum+=ret;}printf("%d\n",sum);return 0;
}//3.1
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10};int x = 0;scanf("%d",&x);for(int i = 0;i<10;++i){if(x==arr[i]){printf("找到了,下标为%d\n",i);break;}}if(i==10){printf("没找到!\n");}return 0;
}
//3.2二分查找
#include <stdio.h>
int main()
{int arr[10] = {1,2,3,4,5,6,7,8,9,10};int x = 0;scanf("%d",&x);int left = 0,right = 9;int flag = 0;while(left<=right){int mid = (left+right)/2;if(arr[mid]==x){printf("找到了,下标为%d\n",mid);flag = 1;break;}else if(arr[mid]<x){left = mid+1;}else{right = mid-1;}}if(flag == 0){printf("找不到!\n");}return 0;
}//4
#include <stdio.h>
int main()
{char arr1[] = "hello world!";char arr2[] = "************";int n = sizeof(arr1);int left = 0;int right = n - 1;for (left = 0, right = n - 1; left <= right; ++left, --right){arr2[left] = arr1[left];arr2[right] = arr1[right];printf("%s\n", arr2);}return 0;
}
3.4.3 猜数字游戏
学以上的内容,我们可以写一个简单的猜谜游戏
#include <stdio.h>
#include <stdlib.h>//srand和rand的头文件
#include <time.h>//time的头文件
void menu()
{printf("**********************\n");printf("*****1.paly***********\n");printf("*****0.exit***********\n");printf("**********************\n");
}
void game()
{int r = rand() % 100 + 1;//rand可以产生随机数,但因为rand的随机数是根据srand所提供的种子生成,所以我们还要使用srand,但是由由于srand所提供的种子也要输入数字才可以生成,为此我在使用了time函数生成当前时间的时间戳数来充当输入的数字,以达到rand生成随机数的效果。int guess = 0;//玩家要猜测的数printf("游戏开始\n");while (1)//直到猜中{scanf("%d", &guess);if (guess < r){printf("猜小了\n");}else if (guess > r){printf("猜大了\n");}else{printf("恭喜你,猜中了!\n");break;}}
}
int main()
{int input = 0;srand((unsigned)time(NULL));do//进入循环{menu();//打印菜单printf("请选择_>");//提示信息scanf("%d", &input);//根据提示选择进入还是退出//根据输入进入相应区域,用到多分支语句switchswitch (input){case 1:game();//进入游戏break;case 0:printf("已退出游戏!\n");break;default:printf("输入错误!\n");break;}} while (input);}
4.goto语句
C语言中提供了可以随意滥用的goto语句和标记跳转的标号。
从理论上来讲goto语句是没有必要的,实际中没有goto语句也可以很容易的写成代码。
但是在某些场合下goto语句还是用的着的,最常见的用法就是终止某些深层嵌套的结构。
例如一次性跳出多层循环。
多重循环下使用break是达不到目的的,break只能从最内层循环退出到上一层循环。
for(...)
{for(...){for(...){if(disaster)goto error;}}
}
error:if(disaster)//处理错误情况
大部分部分使用goto的情况是可以利用循环代替的。
//代码1
#include <stdio.h>
int main()
{
again://...if(...){//...break;}else{goto again;}return 0;
}//代码2
#include <stdio.h>
int main()
{while(1){if(...){//...break;}}return 0;
}
完
相关文章:

详解C语言分支与循环语句
分支语句 if elseswitch 循环语句 whilefordo while goto语句 文章目录 1.什么是语句2.分支语句(选择结构)2.1 if语句2.1.1 悬空else2.1.3 练习 2.2 switch语句2.2.1 在switch语句中的break2.2.2 default子句 3.循环语句3.1 while循环3.1.1 while语句中…...
Python商务数据分析知识专栏(五)——Python数据分析的应用③使用Pandas进行数据预处理
Python商务数据分析知识专栏(五)——Python数据分析的应用③使用Pandas进行数据预处理 使用Pandas进行数据预处理1.合并数据2.清洗数据3.标准化数据4.转换数据 使用Pandas进行数据预处理 1.合并数据 2.清洗数据 3.标准化数据 4.转换数据...

Nosql期末复习
mongodb基本常用命令(只要掌握所有实验内容就没问题) 上机必考,笔试试卷可能考: 1.1 数据库的操作 1.1.1 选择和创建数据库 (1)use dbname 如果数据库不存在则自动创建,例如,以下…...

Pytest+Allure+Yaml+PyMsql+Jenkins+Gitlab接口自动化(四)Jenkins配置
一、背景 Jenkins(本地宿主机搭建) 拉取GitLab(服务器)代码到在Jenkins工作空间本地运行并生成Allure测试报告 二、框架改动点 框架主运行程序需要先注释掉运行代码(可不改,如果运行报allure找不到就直接注释掉) …...
SQL面试题练习 —— 查询前2大和前2小用户并有序拼接
目录 1 题目2 建表语句3 题解 1 题目 有用户账户表,包含年份,用户id和值,请按照年份分组,取出值前两小和前两大对应的用户id,需要保持值最小和最大的用户id排首位。 样例数据 ------------------------- | year | user_id | v…...
Arthas常见使用姿势
文章目录 Arthas常见使用姿势官网基本命令通用参数解释表达式核心变量说明常用命令一些常用特殊案例举例其他技巧关于OGNLOGNL的常见使用OGNL的一些特殊用法与说明OGNL内置的虚拟属性OGNL的个人思考OGNL的杂碎,收集未做验证 Arthas常见使用姿势 官网 https://arth…...
Apache Kylin的入门学习
Apache Kylin的入门学习可以从以下几个方面进行: 1. 了解Kylin的基本概念 定义:Apache Kylin是一个开源的分布式分析引擎,它基于Hadoop和HBase构建,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能…...
React@16.x(46)路由v5.x(11)源码(3)- 实现 Router
目录 1,Router 的结构2,实现2.1,react-router1,matchPath.js2,Router.js3,RouterContext.jsx4,index.jsx 2.2,react-router-domBrowserRouter.jsxindex.jsx 1,Router 的结…...

openGauss真的比PostgreSQL差了10年?
前不久写了MogDB针对PostgreSQL的兼容性文章,我在文中提到针对PostgreSQL而言,MogDB兼容性还是不错的,其中也给出了其中一个能源客户之前POC的迁移报告数据。 But很快我发现总有人回留言喷我,而且我发现每次喷的这帮人是根本不看文…...
【国产开源可视化引擎Meta2d.js】快速上手
提示 初始化引擎后,会生成一个 meta2d 全局对象,可直接使用。 调用meta2d前,需要确保meta2d所在的父容器element元素位置大小已经渲染完成。如果样式或css(特别是css动画)没有初始化完成,可能会报错&…...
c#与倍福Plc通信
bcdedit /set hypervisorlaunchtype off...
【OceanBase诊断调优】—— 如何通过trace_id找到对应的执行节点IP
1. 前言 OceanBase作为分布式数据库,查问题找对节点很关键。好在OceanBase执行的每一条SQL都能通过trace_id来关联起来,知道trace_id怎么知道是在哪个节点发起的呢,请看本文。 2. trace_id生成规则 ob内部trace_id的生成函数如下࿰…...

鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】
使用粘贴控件 粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后,用户点击该控件,应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景,避免弹窗…...

PL/SQL入门到实践
一、什么是PL/SQL PL/SQL是Procedural Language/Structured Query Language的缩写。PL/SQL是一种过程化编程语言,运行于服务器端的编程语言。PL/SQL是对SQL语言的扩展。PL/SQL结合了SQL语句和过程性编程语言的特性,可以用于编写存储过程、触发器、函数等…...
双非本 985 硕,我马上要入职上海AI实验室大模型算法岗
暑期实习基本结束了,校招即将开启。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友解惑答疑&…...

C盘清理和管理
本篇是C盘一些常用的管理方法,以及定期清理C盘的方法,大部分情况下都能避免C盘爆红。 C盘清理和管理 C盘存储管理查看存储情况清理存储存储感知清理临时文件清理不需要的 迁移存储 磁盘清理桌面存储管理应用存储管理浏览器微信 工具清理 C盘存储管理 查…...

晚上睡觉要不要关路由器?一语中的
前言 前几天小白去了一个朋友家,有朋友说:路由器不关机的话会影响睡眠吗? 这个影响睡眠嘛,确实是会的。毕竟一时冲浪一时爽,一直冲浪一直爽……刷剧刷抖音刷到根本停不下来,肯定影响睡眠。 所以晚上睡觉要…...

ardupilot开发 --- 坐标变换 篇
Good Morning, and in case I dont see you, good afternoon, good evening, and good night! 0. 一些概念1. 坐标系的旋转1.1 轴角法1.2 四元素1.3 基于欧拉角的旋转矩阵1.3.1 单轴旋转矩阵1.3.2 多轴旋转矩阵1.3.3 其他 2. 齐次变换矩阵3. visp实践 0. 一些概念 相关概念&am…...
git clone 别人项目后正确的修改和同步操作
简介 git clone主要是克隆别人的开源项目。但更高端的操作是实现本地修改的同时,能同步别人的在线修改,并且不相互干扰: 克隆原始项目:从远程仓库克隆项目到本地。添加上游仓库:将原始项目的远程仓库添加为上游仓库。…...

JAVA连接FastGPT实现流式请求SSE效果
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! 一、先看效果 真正实流式请求,SSE效果,SSE解释&am…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...