Hi!这里是渔火。今天我们来学校C语言中的循环结构。循环结构是结构化程序设计中的基本结构之一。循环结构在程序设计中的应用很普遍,几乎所有具有实用价值的应用程序中都包含着循环结构。循环结构的特点是,可以完成有规律的、需要重复计算或处理的任务。C语言提供了for语句、while语句和do-while三种循环语句。我们来看一个用到循环结构的程序设计。
【1】假设今年我国的人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口的数量。
#include运行结果如下:#include //2023.2.4渔火 Linux迷 www.linuxmi.com int main() { int n=13,year; double number,rate=0.02; for(year=1;year<=10;year++) { number=n*pow((1+rate),year); printf("%2d年后,人数为:%.2f亿 ",year,number); } //2023.2.4渔火 Linux迷 www.linuxmi.com return 0; }
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com gcc linuxmi.c -lm -o linuxmi linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ./linuxmi 1年后,人数为:13.26亿 2年后,人数为:13.53亿 3年后,人数为:13.80亿 4年后,人数为:14.07亿 5年后,人数为:14.35亿 6年后,人数为:14.64亿 7年后,人数为:14.93亿 8年后,人数为:15.23亿 9年后,人数为:15.54亿 10年后,人数为:15.85亿
分析:程序中的for循环控制语句中,年份year的初始值为1,终值为10,增量用year++实现。
{ number=n*pow((1+rate),year); printf("%2d年后,人数为:%.2f亿 ",year,number); }是需要重复执行的语句,称为循环语句。在重复执行的过程中,使用了同一个计算公式,但年份year每次递增1,因此计算出的人口数量number会不同。
for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题。for语句的一般形式为:for(表达式1:表达式2:表达式3) 循环体语句;
1、可以应用于计数型的循环。格式是:for(循环变量赋初值;循环条件,循环变量增量) 循环体语句;
说明:循环变量赋初值是一个赋值语句,用于给循环变量赋初值;循环条件是一个关系表达式,决定何时终止循环;循环变量增量决定循环变量在完成一次循环后如何变化。三部分之间以”;“隔开。
【2】输入一个正整数,求n!。
#include1、运行结果如下://输入10//2023.2.4渔火 Linux迷 www.linuxmi.com int main() { int i,n; double fac; printf("输入n的值:"); scanf("%d",&n); fac=1; for(i=1;i<=n;i++) fac=fac*i; printf("%d!=%.0f ",n,fac); //2023.2.4渔火 Linux迷 www.linuxmi.com return 0; }
2、for语句的一般形式中省略表达式1,格式为:for(;表达式2;表达式3) 循环体语句;。
说明:省略表达式1时,可以将循环变量赋初值放在for之前。注意,此时不能省略第一个”;“。
3、for语句的一般形式中省略表达式2,格式为:for(;表达式1;;表达式3) 循环体语句;。
说明”省略表达式2时,表示不对循环进行控制,这时如果没有其他处理的话。会形成死循环。应避免这样使用for结构。
4、for语句的一般形式中省略表达式3,格式为:for(;表达式1;表达式2) 循环体语句;。
说明:省略表达式3时,可以在循环体语句中加入修改循环变量的值的语句。
5、for语句的一般形式中表达式1和表达式3也可以是逗号表达式。
6、for语句的一般形式中表达式2 的值只要非0,就执行循环体。
7、for语句的一般形式中循环体语句可以省略。
for使用循环例子。
【编写程序,输入10个数,输出其中的最大值】
#include//2023.2.4渔火 Linux迷 www.linuxmi.com int main() { int i; float x,max; printf("请输入第1个数:"); scanf("%f",&x); max=x; for(i=1;i<=9;i++) { printf("请输入第%d个数",i+1); scanf("%f",&x); if(x>max) max=x; } printf("10个数的最大值是:%.0f",max); //2023.2.4渔火 Linux迷 www.linuxmi.com return 0; }
分析:这是典型的最值问题,求解的思路是:定义变量max存放最大数,将输入的第一个数赋给max作为最大数,在后续循环中,每输入一个数,都与max进行比较,若比max大,则将其赋给max,循环结束后,变量max中即为最大数。
【编写程序,输出所有的水仙花】
#include运行结果如下://2023.2.4渔火 Linux迷 www.linuxmi.com int main() { int num,a,b,c; for(num=100;num<=999;num++) { a=num/100; b=num%100/10; c=num%10; if(num==a*a*a+b*b*b+c*c*c) printf("%5d",num); } //2023.2.4渔火 Linux迷 www.linuxmi.com return 0; }
【由键盘输入3个数字,将其组合成一个整型数并输出】
#include运行结果如下://2023.2.4渔火 Linux迷 www.linuxmi.com int main() { int n=0,i; char ch; printf("输入3个数字:"); for(i=1;i<=3;i++) { scanf("%c",&ch); n=n*10+ch-'0'; } printf("%d ",n); //2023.2.4渔火 Linux迷 www.linuxmi.com return 0; }
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
180文章
7604浏览量
136614 -
程序
+关注
关注
117文章
3782浏览量
80990 -
变量
+关注
关注
0文章
613浏览量
28359 -
for
+关注
关注
0文章
44浏览量
15809 -
循环结构
+关注
关注
0文章
22浏览量
7723
原文标题:从零开始跟我学 C 语言之循环结构(上)
文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
跟我学C语言之顺序结构(上)
hi!这里是渔火。今天我们来讲讲 C 语言的顺序结构。所谓顺序结构就是按照程序代码的书写顺序,自上而下依次执行。我们来看一个例子,感受下顺序结构
发表于 02-02 10:06
•568次阅读
《从零开始学电路基础》(从零开始学电子技术丛书)
电气控制与PLC技术].刘建清.扫描版.pdf[从零开始学电子测量技术].李建清.扫描版.pdf[从零开始学CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[
发表于 06-05 23:12
《从零开始学电子》丛书全套网盘分享
】从零开始学模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始学电子丛书】
发表于 06-28 18:45
从零开始学单片机C语言.haozip02
从零开始学单片机C语言.haozip02,论坛只允许上传小于20M的压缩包,
总共分两卷,需要下载两个压缩包才能解压成功。
发表于 08-16 18:54
•0次下载
从零开始学单片机C语言.haozip01
从零开始学单片机C语言.haozip01,论坛只允许上传小于20M的压缩包,
总共分两卷,需要下载两个压缩包才能解压成功。
发表于 08-16 19:37
•0次下载
从零开始跟我学C语言之分支结构(上)
今天我们来讲分支结构。计算机在执行程序时,通常都是按照语句的书写顺序执行的,但在许多情况下需要根据条件选择所要执行的语句,这就选择所要的语句。C语言中用于实现分支结构的控制语句主要有:
评论