循环

在线C环境:https://clin.icourse163.org/

 

1. while循环

  • 如果我们把while翻译作“当”,那么⼀个 while循环的意思就是:当条件满⾜时,不 断地重复循环体内的语句。
  • 循环执⾏之前判断是否继续循环,所以有 可能循环⼀次也没有被执⾏;
  • 条件成⽴是循环继续的条件。

看程序运⾏结果

⼈脑模拟计算机的运⾏,在纸上列出所有 的变量,随着程序的进展不断重新计算变 量的值。当程序运⾏结束时,留在表格最 下⾯的就是程序的最终结果

验证

测试程序常使⽤边界数据,如有效范围两 端的数据、特殊的倍数等

个位数;

10;

0;

负数。

调试

在程序适当的地⽅插⼊printf 来输出变量的内容

#include <stdio.h>

int main() {
    
    int x;
    int n = 0;
    
    scanf("%d",&x);
    
    n++;
    
    x /= 10;
    
    while(x > 0){
        printf("x=%d,n=%d\n",x,n);
        n++;
        x /= 10;
    }
    
    printf("%d\n",n);
    
    return 0;
}

2. do-while循环

  • 在进⼊循环的时候不做检查,⽽是在执⾏ 完⼀轮循环体的代码之后,再来检查循环 的条件是否满⾜,如果满⾜则继续下⼀轮 循环,不满⾜则结束循环

3. 两种循环

do-while循环和while循环很像,区别是在 循环体执⾏结束的时候才来判断条件。也 就是说,⽆论如何,循环都会执⾏⾄少⼀ 遍,然后再来判断条件。与while循环相同 的是,条件满⾜时执⾏循环,条件不满⾜ 时结束循环。

#include <stdio.h>

int main() {
    
   int x;
   
   scanf("%d",&x);
   
   int n=0;
   
   do{
       x/=10;
       n++;
   }while(x>0);
    //while();后面的分号要有
    
    printf("%d",n);
    return 0;
}

4. 循环的应用

log^2X

#include <stdio.h>

int main() {
    
  int x;
  int ret = 0;
  
  scanf("%d",&x);
  int t = x;
  
  while(x > 1){
      x /= 2;
      ret++;
  }
  
  printf("log2 of %d is %d",t,ret);
  
    return 0;
}

5. 计数循环

#include <stdio.h>

int main() {
    
   int count = 100;
   while( count > 0){
       count--;
       printf("%d\n",count);
   }
   
   printf("发射!\n");
   
    return 0;
}

6.  猜数游戏

  • 让计算机来想⼀个数,然后让⽤户来猜, ⽤户每输⼊⼀个数,就告诉它是⼤了还是 ⼩了,直到⽤户猜中为⽌,最后还要告诉 ⽤户它猜了多少次。
  • 因为需要不断重复让⽤户猜,所以需要⽤ 到循环
  • 在实际写出程序之前,我们可以先⽤⽂字 描述程序的思路
  • 核⼼重点是循环的条件
  1. ⼈们往往会考虑循环终⽌的条件
  1. 计算机随机想⼀个数,记在变量number⾥;
  2. ⼀个负责计次数的变量count初始化为0;
  3. 让⽤户输⼊⼀个数字a;
  4. count递增(加⼀);
  5. 判断a和number的⼤⼩关系,如果a⼤,就输出 “⼤”;如果a⼩就输出“⼩”;
  6. 如果a和number是不相等的(⽆论⼤还是⼩),程 序转回到第3步;
  7. 否则,程序输出“猜中”和次数,然后结束。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main() {
    
  srand(time(0));
  int number = rand()%100+1;
  int count = 0;
  int a = 0;
  
  printf("我已经想好了一个1到100之间的数。");
  
  do{
      printf("请猜这个1到100之间数:");
      scanf("%d",&a);
      count++;
      if(a>number){
          printf("你猜的数大了");
      }else if(a<number){
          printf("你猜的数小了.");
      }
  }while(a!=number);
  
  printf("太好了,你用了%d次就猜到了答案\n",count);
   
    return 0;
}

7. 算平均数

  •  让⽤户输⼊⼀系列的正整数,最后输⼊-1 表⽰输⼊结束,然后程序计算出这些数字 的平均数,输出输⼊的数字的个数和平均 数
  • 变量->算法->流程图->程序

变量

  • ⼀个记录读到的整数的变量
  • 平均数要怎么算?
  1. 只需要每读到⼀个数,就把它加到⼀个 累加的变量⾥,到全部数据读完,再拿 它去除读到的数的个数就可以了
  • ⼀个变量记录累加的结果,⼀个变量记录 读到的数的个数

算法

  • 初始化变量sum和count为0;
  • 读⼊number;
  • 如果number不是-1,则将number 加⼊sum,并将count加1,回到 2;
  • 如果number是-1,则计算和打印 出sum / count(注意换成浮点来 计算)。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main() {
   int sum = 0;
   int count = 0;
   int number = 0;
   while(count != 5){
       scanf("%d",&number);
        sum += number;
       count ++;
        printf("%d\n",sum);
   }
   printf("%f",sum/count);
    return 0;
}
原文地址:https://www.cnblogs.com/hechunfeng/p/15647672.html