循环
在线C环境:https://clin.icourse163.org/
1. while循环
- 如果我们把while翻译作“当”,那么?个 while循环的意思就是:当条件满?时,不 断地重复循环体内的语句。
- 循环执?之前判断是否继续循环,所以有 可能循环?次也没有被执?;
- 条件成?是循环继续的条件。
看程序运?结果
?脑模拟计算机的运?,在纸上列出所有 的变量,随着程序的进展不断重新计算变 量的值。当程序运?结束时,留在表格最 下?的就是程序的最终结果
验证
测试程序常使?边界数据,如有效范围两 端的数据、特殊的倍数等
个位数;
10;
0;
负数。
调试
在程序适当的地?插?printf 来输出变量的内容
#includeint 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循环相同 的是,条件满?时执?循环,条件不满? 时结束循环。
#includeint 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
#includeint 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. 计数循环
#includeint main() { int count = 100; while( count > 0){ count--; printf("%d\n",count); } printf("发射!\n"); return 0; }
6. 猜数游戏
- 让计算机来想?个数,然后让?户来猜, ?户每输??个数,就告诉它是?了还是 ?了,直到?户猜中为?,最后还要告诉 ?户它猜了多少次。
- 因为需要不断重复让?户猜,所以需要? 到循环
- 在实际写出程序之前,我们可以先??字 描述程序的思路
- 核?重点是循环的条件
- ?们往往会考虑循环终?的条件
- 计算机随机想?个数,记在变量number?;
- ?个负责计次数的变量count初始化为0;
- 让?户输??个数字a;
- count递增(加?);
- 判断a和number的??关系,如果a?,就输出 “?”;如果a?就输出“?”;
- 如果a和number是不相等的(?论?还是?),程 序转回到第3步;
- 否则,程序输出“猜中”和次数,然后结束。
#include#include #include 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 表?输?结束,然后程序计算出这些数字 的平均数,输出输?的数字的个数和平均 数
- 变量->算法->流程图->程序
变量
- ?个记录读到的整数的变量
- 平均数要怎么算?
- 只需要每读到?个数,就把它加到?个 累加的变量?,到全部数据读完,再拿 它去除读到的数的个数就可以了
- ?个变量记录累加的结果,?个变量记录 读到的数的个数
算法
- 初始化变量sum和count为0;
- 读?number;
- 如果number不是-1,则将number 加?sum,并将count加1,回到 2;
- 如果number是-1,则计算和打印 出sum / count(注意换成浮点来 计算)。
#include#include #include 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; }