• C语言 第五章 循环结构


    一、for

    请在屏幕上输出1000个*号

    printf("*************************....");

    复制代码
    #include "stdio.h"
    void main()
    {
        int i;
        for(i=1;i<=1000;i++){
          printf("*");
        }
    }
    复制代码

    for(表达式A;表达式B;表达式C)
    {
    要重复执行的代码块D;
    }

    1、表达式A先执行,且只执行一次

    2、表达式B再执行,如果为真则执行代码块D

    3、再执行表达式C,再选择表达式B,回到第2步

    4、ABCD都可以省去 for(;i>=100;);

    5、表达式1通常用来给循环变量赋初值,一般是赋值表达式i=1  i=-1,j=100

    6、表达式2通常是循环条件,一般为关系表达式或逻辑表达式i>=5 i>5&&j<=8

    7、表达式3通常可用来修改循环变量的值,一般是复合赋值语句i++,i--,  i+=5,j++

    8、这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。三个表达式都是任选项,都可以省略。

    复制代码
    #include "stdio.h"
    void main()
    {
        int i,j;
        for(i=1;i<=10;i++)
        {
            printf("%d 
    ",i);
        }
    }
    复制代码
    复制代码
    #include "stdio.h"
    void main()
    {
        int i,j;
        for(i=-10;i<=10;i++)
        {
            printf("%d 
    ",i);
        }
    }
    复制代码

    复制代码
    #include "stdio.h"
    void main()
    {
        int i,j;
        for(i=1;i<=10;i=i+3)
        {
            printf("%d 
    ",i);
        }
    }
    复制代码

     

    复制代码
    #include "stdio.h"
    void main()
    {
        int i,j;
        for(i=10;i>0;i--)
        {
            printf("%d 
    ",i);
        }
    }
    复制代码

     

    复制代码
    #include "stdio.h"
    void main()
    {
        int i,j;
        for(i=10,j=1;i>0;i--,j++)
        {
            printf("%d + %d = 11 
    ",i,j);
        }
    }
    复制代码

    复制代码
    #include "stdio.h"
    void main()
    {
        int i=1;
        for(;i<=10;i++)
        {
            printf("
     %d",i);    
        }
    }
    复制代码
    复制代码
    #include "stdio.h"
    void main()
    {
        int i=1;
        for(;i<=10;)
        {
            printf("
     %d",i);    
            i++;
        }
    }
    复制代码
    复制代码
    #include "stdio.h"
    void main()
    {
        int i=1;
        for(;;)
        {
            printf("
     %d",i);    
            i++;
            if(i>10)break;
        }
    }
    复制代码

    for语句中的各表达式都可省略,但分号间隔符不能少。如:
    for(;表达式;表达式)省去了表达式1。
    for(表达式;;表达式)省去了表达式2。
    for(表达式;表达式;)省去了表达式3。
    for(;;)省去了全部表达式。
    在循环变量已赋初值时,可省去表达式1,如省去表达式2或表达式3则将造成无限循环, 这时应在循环体内设法结束循环。
    循环体(要重复的语句)可以是空语句。

    练习:计算出1-100之间奇数之和。1+3+5+7....99=?

    复制代码
    #include "stdio.h"
    void main()
    {
        //练习:计算出1-100之间奇数之和。1+3+5+7....99=?
        int i,s=0;
        for(i=1;i<=100;i++)
        {
            if(i%2==1){
                s=s+i;
            }
        }
        printf("结果:%d",s);
    }
    复制代码

    2500

    复制代码
    #include "stdio.h"
    void main()
    {
        //练习:计算出1-100之间奇数之和。1+3+5+7....99=?
        int i,s=0;
        for(i=1;i<=100;i=i+2)
        {
                s=s+i;
        }
        printf("结果:%d",s);
    }
    复制代码

    2500

    二、while

    while语句的一般形式为:
    初值;
    while(表达式A)
    {
    表达式的值为真时要重复的语句块;B
    步长;

    其中表达式是循环条件
    要重复的语句块和步长都为循环体
    while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。

    1、程序先判断A是否为真,如果为真则执行循环体B

    2、当执行完循环体后再回到第1步

    3、当表达式A为假时结束循环

    复制代码
    #include "stdio.h"
    void main()
    {
        int i=1;
        while(i<=10)
        {
            printf("%d 
    ",i);
            i=i+1;
        }
    }
    复制代码

    while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环
    循环体如包括有一个以上的语句,则必须用{}括起来, 组成复合语句。
    应注意循环条件的选择以避免死循环。

    练习:

    练习:计算出1-100之间奇数之和。1+3+5+7....99=?

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
       int i=1,s=0;
       while(i<=100)
       {
             s=s+i;
             i=i+2;
       } 
       printf("s=%d",s);
    }
    复制代码

    2500

    练习:列出1-1000之间所有能同时被3与7整除的数。

    三、do while

    do-while语句的一般形式为: 
    do
    {
    要重复的语句块;
    }while(表达式);
    其中“要重复的语句块”是循环体
    表达式是循环条件
    语义是:先执行循环体语句一次,再判断表达式的值,若为真(非0)则继续循环,否则终止循环。

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        int i=1,s=0;
        do
        {
            s=s+i;
            i++;
        }while(i<=5);
        printf("%d",s);
    }
    //i=1 2 3 4 5  6
    //s=0 1 3 6 10 15
    复制代码

    15

    适用于必须要执行一次的应用,如输入一个合格的数字。

    复制代码
    #include "stdio.h"
    void main()
    {
        int n;
        do
        {
            printf("请输入1-7之间的数:");
            scanf("%d",&n);
        }while(n<1||n>7);
    }

    复制代码

    四、continue

     在for,while,do-while中遇到continue表示结束当次循环,继续下次循环。

    复制代码
    #include "stdio.h"
    void main()
    {
       int i;
       for(i=1;i<=10;i++)
       {
              printf("●");
              printf("□");
       }
    }
    复制代码

    复制代码
    #include "stdio.h"
    void main()
    {
       int i;
       for(i=1;i<=5;i++)
       {
              if(i%2==0)
              {
                    continue;  //结束当次,继续下一次
              }
              printf("□");
       }
       
       //i=1 2 3 4 5 6
       □□□
    }
    复制代码

    五、break

     在for,while,do-while,switch中遇到break跳出当前循环。

    复制代码
    #include "stdio.h"
    void main()
    {
       int i;
       for(i=1;i<=5;i++)
       {
              if(i%2==0)
              {
                    break;  //结束当前循环
              }
              printf("□");
       }  
    }
    复制代码

    在无条件循环中退出

    复制代码
    #include "stdio.h"
    void main()
    {
        int i=1,s=0;
        while(1)
        {
            s=s+i;
            i++;
            if(i>100) break;
        }
        printf("%d",s);
    }
    复制代码
     
     
     
     
     

    一、计算15+16+17 …98+99的和 for实现

    复制代码
    #include "stdio.h"
    void main()
    {
        //15+16+17 …98+99
        int i,s=0;
        for(i=15;i<=99;i++)
        {
            s=s+i;
        }
        printf("%d 
    ",s);
    }
    复制代码

    二、计算15+16+17 …98+99的和 while实现

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        int i=15,s=0;
        while(i<=99)
        {
            s=s+i;
            i++;
        }
        printf("%d",s);
    }
    复制代码

    三、计算15-99之间不能被5或9整除的数之和

    复制代码
    #include "stdio.h"
    void main()
    {
        //15+16+17 …98+99
        //不能被5或9整除的数之和
        int i,s=0;
        for(i=15;i<=99;i++)
        {
            if(!(i%5==0||i%9==0))
            {
                s=s+i;
            }
            
        }
        printf("%d 
    ",s);
    }
    复制代码

    四、计算1 1 2 3 5 8 13 21…第20位的数是多少?

    复制代码
    #include "stdio.h"
    void main()
    {
        long x=1,y=1,z,n;
        for(n=3;n<=40;n++)
        {
            z=y;
            y=x+y;
            x=z;
            printf("%d 	",y);
        }
    }
    复制代码

     五、循环计算

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
       int a,b;
       char c,z;
       
       do{
            printf("开始运算
    请输入第1个数:");
           scanf("%d",&a); 
           fflush(stdin);
           
           printf("请输入运算符:");
           scanf("%c",&c); 
           fflush(stdin);
           
           printf("请输入第2个数:");
           scanf("%d",&b);
           fflush(stdin); 
           
           if(c=='+'){
                   printf("%d%c%d=%d",a,c,b,a+b);
           }
           else if(c=='-'){
                   printf("%d%c%d=%d",a,c,b,a-b);
           }
           else if(c=='*'){
                   printf("%d%c%d=%d",a,c,b,a*b);
           }
           else if(c=='/'){
               printf("%d%c%d=%d",a,c,b,a/b);
           }
           else
           {
               printf("输入符号错误");
           }
           
            printf("
    
    您是否继续运算(y/n):");
            scanf("%c",&z);
            fflush(stdin);        
       }while(z=='y');
       
       printf("欢迎下次光临!");
    }
    复制代码

    六、统计输入的数字与字母个数

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        char str[100];
        int i,s=0,z=0;
        
        printf("请输入字符串:");
        scanf("%[^
    ]s",str);  //abc123
        //printf("%d",strlen(str));  //获得字符串长度
        
        for(i=0;i<strlen(str);i++)
        {
            printf("%c",str[i]);  //取出对应下标的字符
            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){
              z++;
            }else if(str[i]>='0'&&str[i]<='9')
            {
              s++;    
            }
        }
        
        
        printf("
    字母:%d",z);
        printf("
    数字:%d",s);
    }
    复制代码

    复制代码
    #include "stdio.h"
    void main()
    {
        int i,z=0,s=0,t=0;
        char str[100];
        
        scanf("%[^
    ]s",str);//abc 123
        
        for(i=0;i<strlen(str);i++)
        {
            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
            {
                z++;
                printf("
    字母:%c",str[i]);
            }
            else if(str[i]>='0'&&str[i]<='9')
            {
                s++;
                printf("
    数字:%c",str[i]);
            }
            else
            {
                t++;
                printf("
    符号:%c",str[i]);
            }
        }
        
        printf("
    字母个数:%d",z);
        printf("
    数字个数:%d",s);
        printf("
    符号个数:%d",t);
           
        //strlen(str) 获得字符串长度
    }
    复制代码

    七、输入输出函数

    原型:extern int getchar(void);
    功能:读键
    说明:从键盘上读取一个键,并返回该键的键值
            getch是到getchar的宏定义 
    复制代码
    #include "stdio.h"
    void main()
    {
        printf("%c 
    ",getchar());  //字符
        
        fflush(stdin);
        
        printf("%d 
    ",getchar());  //整型
    }
    复制代码

     原型:extern void putchar(char c);
     功能:在屏幕上显示字符c
     说明:字符输出在屏幕的当前位置。
    

    putchar(65);  //输出 A

    putchar('X'); //输出X

    复制代码
    #include "stdio.h"
    void main()
    {
        do
        {
            printf("告诉你1+1=2
    ");
            
            printf("还想看一遍吗?(y/n):");
            fflush(stdin);
        }while(getchar()=='y');
    }
    复制代码

    八、计算某一天在一年中的位置,比如2016年1月27号,这一天是这一年的第27天,2016年2月27号,第58天。

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        int year,month,day,count=0,i;  //年,月,日
        printf("请输入年月日(2016-10-01):");
        scanf("%d-%d-%d",&year,&month,&day);
        
        for(i=1;i<month;i++)
        {
            if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
            {
                printf("31
    ");
                count+=31;
            }
            else if(i==4||i==6||i==9||i==11)
            {
                printf("30
    ");
                count+=30;
            }
            else if(i==2)
            {
                //是否为闰年 (年被4整除且不被100整除,或被400整除)
                if((year%4==0&&year%100!=0)||year%400==0)
                {
                    printf("29
    ");
                    count+=29;
                }
                else
                {
                    printf("28
    ");
                    count+=28;
                }
            }
            else
            {
                printf("月份错误 ");
            }
        }
        
        printf("%d 
    ",day);
        count+=day;
        printf("第%d天",count);
           
    }
    复制代码

  • 相关阅读:
    强制数据类型转换之Number类型
    强制类型转换之String类型
    数据类型之字符串类型与Number类型
    favicon.ico是什么?
    什么是自幂数?
    JavaScript基础之变量的自增与自减
    CMD 命令
    那些看完很有同感的语句
    HTML5 canvas 元素
    HTML的多媒体属性
  • 原文地址:https://www.cnblogs.com/Jansens520/p/6538204.html
Copyright © 2020-2023  润新知