- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
for语句
for语句在循环控制结构中使用最为灵活,不仅可以用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况,它可以完全替while语句,也是使用得最多的一种循环语句。
1.for语句的一般格式:
for(表达式1;表达式2;表达式3)
{循环体}
for语句中的表达式1通常用来为循环变量赋初值。表达式2是循环控制条件,若表达式2的值为真,则执行循环体一次,否则跳出循环。表达式3是执行循环体后要执行的部分,通常用来改变循环变量的值,使循环逐渐趋于终止。这三个表达式之间用分号隔开。
循环体可以是一条简单的语句,也可以是一个复合语句,当只有一条语句时,花括号可以省略,当循环体包含了两条或两条以上的语句时,花括号不能省略。
2.for语句的流程图
例如:
for(i=1;i=5;i++)
{printf(“%d”,i);}
程序运行结果为:12345
对于for语句的一般形式,也可以改为while循环的形式:
int表达式1;
while(表达式2)
{循环体语句;
表达式3;}
for循环的执行流程,完全符合“当型”循环控制结构的特点。
3.for语句的特殊用法:
(1)for语句中的“表达式1”可省略。“表达式1”省略后应在for语句前面设置循环初始条件,但是其后的分号不能省略。如for(;i=10;i++),但是不能表示为for(i=10;i++)。
(2)表达式1可以是多由个表达式构成的逗号表达式。如for(s=0,i=1;i=10;i++)。
(3)for语句中的“表达式2”可省略。相当于循环条件始终为“真”,循环将无终止地进行下去,陷入死循环。
(4)for语句中的“表达式3”可省略。但程序必须在循环体语句中设置循环变量增值,来修改循环条件,以确保循环能正常结束。
(5)“表达式1”和“表达式3”可以都省略,相当于while循环。
(6)for语句中的“循环体”可省略。但在for语句后面至少保留一个分号,相当于一条空语句。
4.for语句的应用
【例1】计算1~100的倒数求和。
1-
参考程序:
main()
{
inti; //定义循环变量
doublesum=0; //要定义为double类型
for(i=1;i=99;i=i+2) //计算符号为“+”的奇数项之和
sum=sum+1.0/i; //1.0/i不能写成1/i,后者是整除,前者是实除
for(i=2;i=100;i=i+2) //计算符号位“-”的偶数项之和
sum=sum-1.0/i;
printf(“sum=%f\n”,sum);
}
程序运行结果如下:
【例2】用for循环语句打印输出所有的水仙花数。
分析:水仙花数是指一个3位数,它的每个位上的数字的立方之和等于它本身。例如153是“水仙花数”,因为:153=13+53+33。
参考程序:
main()
{
intn; //存放整数变量
inta,b,c; //存放i的个、十、百位上数字
printf(水仙花数有:\n);
for(n=100;n=999;n++) //水仙花数的取值范围
{
a=n%10; //个位
b=n/10%10; //十位
c=n/100; //百位
if(n==a*a*a+b*b*b+c*c*c) //各位上的立方和是否与原数n相等
printf(%d=%d^3+%d^3+%d^3\n,n,a,b,c);
}
}
程序运行结果如下:
【例3】韩信点兵,总人数不足1000人,每3人一列余1人,5人一列余2人,7人一列余4人,13人一列余6人,请计算出具体有多少个士兵?
分析:将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃的方法实现,这就是穷举法,在编程实现是一种暴力破解的算法。本题中可以直接在1~1000的人数中通过穷举法,排查符合条件的情况得到最后的结果。
参考程序:
main()
{
inti;
for(i=1;i1000;i++) //穷举法排查所有人数的可能性
{
if(i%3==1i%5==2i%7==4i%13==6) //判断条件
printf(%d\n,i);
}
}
程序运行结果如下:
487
文档评论(0)