while循环
while(x > 0){
x /=10;
n++;
}
- 注意:循环体内要有改变条件的机会
- 如果我们把while翻译作“当”,那么一个while循环的意思就是:当条件满足时,不断的重复循环体内的语句。
- 循环执行之前判断是否继续执行循环,所以有可能循环一次也没有被执行;
- 条件成立是循环继续下去的条件;
do-while循环
- 在进入循环的时候不做检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则进行下一轮循环,不满足则结束循环。
do
{
<循环体语句>
}while(<循环条件>);
- do-while循环和while循环很像,区别是do-while在循环体结束的时候才来判断条件。
- do-while至少会执行一次循环体。
- do-while和while都是条件满足时执行循环,条件不满足时结束循环。
循环计算
计算log2x
// log2x
#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;
}
倒计时
#include <stdio.h>
int main()
{
int n = 3;
while ( n>= 0 ) {
printf("%d ", n);
n--;
}
printf("发射\n");
return 0;
}
猜数游戏
#include <stdio.h>
int main()
{
int number = rand()%100+1;
int count = 0;
int a = 0;
printf("我已经想好了一个1到100之间的数。");
do {
printf("请猜这个1到100之间数:");
scanf("%d", &a);
if ( a > number ) {
printf("你猜的数大了。");
} else if ( a < number ) {
printf("你猜的数小了。");
}
count ++;
} while (a != number);
printf("太好了,你用了%d次就猜到了答案。\n", count);
return 0;
}
随机数
- 初始化变量sum和count为0;
- 读入number;
- 如果number不是-1,则将number加入sum,并将count+1,回到2;
- 如果number是-1,则计算和打印sum/count(注意换成浮点计算)
#include <stdio.h>
int main()
{
int sum = 0;
int count = 0;
int number;
scanf("%d", &number);
while ( number != -1 ) {
sum += number;
count ++;
scanf("%d", &number);
}
double dsum = sum;
printf("The average is %f.\n", dsum / count);
return 0;
}
整数逆序
整数的分解
- 一个整数由1至多位的数字组成的,如何分解出整数各个位上的数字,然后加以计算;
- 对一个整数做%10的操作,就得到了它的个位数;
- 对一个整数做/10的操作,就去掉了它的个位数;
- 然后再对2的结果做%10的操作,就得到了原来数的十位数;
- 依此类推
```c
include
int main() { int x; scanf(“%d”, &x); int digit; int ret = 0;
while ( x> 0 ) {
digit = x%10;
printf("%d", digit);
ret = ret*10 + digit;
// printf("x=%d,digit=%d,ret=%d\n", x, digit, ret);
x /= 10;
}
// printf("%d", ret);
return 0;
} ```