zoukankan      html  css  js  c++  java
  • C语言四

    c语言循环结构

    为什么用循环?

    C语言中的循环主要分为三种:while循环,do...while循环 for循环

    while循环:先判断条件是否成立,如果条件成立将执行其下的循环体,如果条件不成立一次都不执行。

    语法:

    while(条件)

    {

       //循环体;

    }

    实例:

    int a;

    while(a<=100){

    printf("while执行一百遍 ");

    a++;

    }

    计算0~100的偶数和

    int i=0,sum=0;

    while(i<100){

    if(i%2==0)//偶数

    sum+=i;

    }

    i++;

    }

    printf("0~100之间的所有偶数和为:%d ",num);

     do...while结构:先执行循环体,再判断条件是否为真,如果为真继续执行,如果为假终止循环===>先执行,再判断(至少会执行一次

    语法: do{

       循环体;

    }while(条件);

    实例:0~100的奇数

    int i=0;num=0;

    do{

    if(i%2!=0){

    num+=i;

    }

    i++;

    }while(i<100);

    printf("0~100之间的所有奇数和为:%d ",sum);

    猜价格高低:5次机会

      int number,i=0,price=100;

      do{

        printf("请输入商品价格: ");

        scanf("%d",&number);

        if(number<price){

         printf("低了! ");

        }else if(number>price){

      printf("高了! ");

        }else{

       printf("猜中了! ");

       break;//跳出循环

        }   

        i++;

      }while(i<5); 

    计算0~100之间所有能被3整除和带3的数字之和

    int i=0;//循环变量

       int sum=0;

       while(i<100){

        if((i%3==0)||(i%10==3)||(i/10==3)){

        sum+=i;

        }

        i++;

       }

       printf("0~100之间所有能被3整除和带3的数字之和为%d",sum);

    打印100~1000之间所有水仙花数,并统计其个数

    int i=100;//循环变量

      int count=0,ge,shi,bai,he;//统计水仙花数

      do{

        ge=i%10;//获取个位

    shi=i/10%10;//获取十位

    bai=i/100; //获取百位

    he=ge*ge*ge+shi*shi*shi+bai*bai*bai;

    if(he==i){

       printf("%d ",i);

       count++;

    }

       i++;

      }while(i<1000);

      printf(" 100~1000之间共有%d个水仙花数",count);

    李白闲来无事街上走,提壶去买酒,遇店加一倍,遇花喝一斗,五遇花和店喝光壶中酒,李白壶中原有多少酒?

    //分析:假设原有壶中有x斗酒;===>遇到花之前(x+1);遇到店之前(x+1)/2

     float x=0;//壶中原有酒的斗数

      int i=0;

      while(i<5){

         x=(x+1)/2;//遇到花和店之前的壶中酒的斗数

     i++;

      }

      printf("李白壶中原有%7.3f斗酒",x);

    环嵌套:一个循环中嵌套其他循环,只有在内层循环结束时,才能执行下一次外层循环(外层循环执行1次,内层循环执行N次)

    while(条件){

       while(条件){

          //循环体;

       }

      }

    do{

    do{

      //循环体;

    }while(条件);

    }while(条件)

     使用循环打印矩形:外层循环控制打印的行数,内层循环控制每行打印*的个数

         ********

         ********

         ********

    int i=0,j;

       while(i<3){

          j=0;

          while(j<8){

           printf("*");

           j++;

          }

          printf(" ");

          i++;

       } 

    打印直角三角形:

       *

       **

       ***

       ****

        int i=0,j;  

       while(i<4){//外层控制打印的行数

          j=0;

          while(j<=i){//内层循环控制每行打印星号的个数

              printf("*");

              j++;

          }

          printf(" ");

          i++;

       }

    打印直角三角形

    *

    ***

    *****

    *******  

       int i=1,j;  

       while(i<5){//外层控制打印的行数

          j=0;

          while(j<2*i-1){//内层循环控制每行打印星号的个数

              printf("*");

              j++;

          }

          printf(" ");

          i++;

    打印正的等腰三角形

          *

         ***

        *****

       *******

       int i=0,j,k;

    while(i<4){//外层循环控制行数

    j=0,k=0;

      //打印空格

     while(j<3-i){

       printf(" ");

       j++;

      }

      //打印星号

     while(k<2*i+1){

       printf("*");

       k++;

      }

      //换行

      printf(" ");

    i++;

    }

    for循环:for循环中;是不能或缺的,表达式1,表达式2,表达式3都可以省略。

     for(表达式1;表达2;表达式3)

    {

    //循环体;

    }

    执行顺序: 初始化循环变量-->循环条件判断--->执行循环体--->更改循坏变量

    示例:3过小游戏"

    int number,fac=1;//接受用户输入的数字

    int i;

        printf("请输入数字");

      scanf("%d",&number);

        for(i=1;i<=number;i++){

      fac=i*fac;  

      }

       printf("%d",fac);

    示例: 九九乘法表

    int i,j;

      for(i=1;i<=9;i++){

      for(j=1;j<=i;j++){

      printf("%d*%d=%d ",i,j,i*j);

     }

     printf(" ");

      }

    breakcontine关键字

    break:跳出循环

    continue: 跳过本次循环,继续下一次循环

  • 相关阅读:
    /etc/vim/vimrc的一个的配置
    vim上下左右键输出A B
    数据结构-栈的实现之行编译器核心实现
    数据结构-栈的实现之括号匹配检测
    数据结构-栈的实现之数制转换
    数据结构-线性表的链式结构
    数据结构-栈的顺序结构两种方式
    简介
    数据结构-线性表的顺序结构
    NHibernate系列文章十六:使用程序集管理NHibernate项目(附程序下载)
  • 原文地址:https://www.cnblogs.com/javatask/p/6580895.html
Copyright © 2011-2022 走看看