0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从零开始跟我学C语言之循环结构(上)

jf_ZqFkd6Up 来源:Linux迷 2023-02-10 15:30 次阅读

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亿
324f5634-a8d9-11ed-bfe3-dac502259ad0.png

分析:程序中的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!。

#include
//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;
}
1、运行结果如下://输入10

327113b4-a8d9-11ed-bfe3-dac502259ad0.png

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;
}
329a984c-a8d9-11ed-bfe3-dac502259ad0.png

分析:这是典型的最值问题,求解的思路是:定义变量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;
}
运行结果如下:

32e5c498-a8d9-11ed-bfe3-dac502259ad0.png

【由键盘输入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;
}
运行结果如下:

330b6bc6-a8d9-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7513

    浏览量

    124062
  • 程序
    +关注

    关注

    113

    文章

    3628

    浏览量

    79420
  • 变量
    +关注

    关注

    0

    文章

    588

    浏览量

    28086
  • for
    for
    +关注

    关注

    0

    文章

    44

    浏览量

    15478
  • 循环结构
    +关注

    关注

    0

    文章

    22

    浏览量

    7663

原文标题:从零开始跟我学 C 语言之循环结构(上)

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    从零开始单片机C语言

    本帖最后由 igbt 于 2011-4-21 10:12 编辑 《从零开始单片机C语言》是单片机入门教材。
    发表于 04-21 10:04

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 05-03 20:56

    从零开始电路基础》(从零开始电子技术丛书)

    电气控制与PLC技术].刘建清.扫描版.pdf[从零开始电子测量技术].李建清.扫描版.pdf[从零开始CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[
    发表于 06-05 23:12

    从零开始低压

    从零开始低压电工技术下载
    发表于 07-02 21:50

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 08-07 16:35

    [从零开始单片机C语言].李建清-著.【高清版】

    ` 本帖最后由 zgzzlt 于 2012-8-15 21:50 编辑 [从零开始单片机C语言].李建清-著.【高清版】`
    发表于 08-15 08:44

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 08-19 23:38

    [从零开始单片机C语言].李建清.扫描版PDF

    ` 本帖最后由 木木1999 于 2013-9-29 14:11 编辑 下载地址:http://yunpan.cn/QGCsezJtF5mjp[从零开始单片机C语言].李建清.扫
    发表于 09-29 13:57

    从零开始单片机C语言——PDF

    `下载地址:http://yunpan.cn/QGCsezJtF5mjp[从零开始单片机C语言].李建清.扫描版`
    发表于 09-29 16:28

    从零开始单片机C语言,很全的资料

    `从零开始单片机C语言,很全的资料需要的网盘里取从零开始单片机
    发表于 07-22 09:20

    从零开始labview

    从零开始,这里开一贴,附上每天给女神发的资料和自己整理的文档,希望能帮到一些想要的人。(不知道为什么有回复审核,我自己早就回过贴结果一直到到第二天也没审核通过,各位不要介意,我尽力了)
    发表于 12-06 18:55

    从零开始电子》丛书全套网盘分享

    从零开始模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始电子丛书】
    发表于 06-28 18:45

    初学者都在看!!从零开始单片机C语言从零开始电子丛书】

    初学者都在看!!从零开始单片机C语言从零开始电子丛书】
    发表于 07-27 15:32

    从零开始跟我学C语言之分支结构(下)

    Hi!这里是渔火。今天我们继续来讲C语言的分支结构。在C语言里,可以使用if-else实现分支结构
    的头像 发表于 02-07 09:27 489次阅读

    从零开始跟我学C语言之循环结构(下)

    在C语言中,使用while语句完成不定次数的循环,如果满足循环条件,则反复执行循环体语句,当循环条件不满足时退出
    的头像 发表于 02-12 17:27 488次阅读