03 C语言循环
1、计算数字位数
#include<stdio.h>
int main(int argc,char const *argv[]){
int x;
int n;
scanf("%d",&x);
n++;
x /= 10;
while(x > 0){
n++;
x /= 10;
}
printf("%d\n",n);
return 0;
}
思路:将右边的每一位去除,然后计数。
2、while & do while循环
1、while语句格式和if语句相似,只是会重复循环体里面的语句,指导圆括号里面判断为0才可以跳出循环。
2、循环体要有改变条件的语句,否则陷入死循环。
计算数字位数,使用do while循环
do{
n++;
x /= 10;
}while(x > 0);
无论如何,先进行一次循环体的语句,再进行判断,最后加上分号。
3、猜数游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(int argc,char const *argv[]){
srand(time(0));
int number = rand()%100;
int x,count = 0;
do{
scanf("%d",&x);
count++;
if(x > number){
printf("大了!\n");
}else if(x < number){
printf("小了!\n");
}
}while(x!=number);
printf("一共猜了%d次。\n",count);
return 0;
}
4、算平均数
#include<stdio.h>
int main(int argc,char const *argv[]){
double sum = 0,count = 0;
int x;
scanf("%d",&x);
while(x != -1){
sum += x;
count++;
scanf("%d",&x);
}
printf("average is %lf\n",sum/count);
return 0;
}
步骤:
1、读入数据,判断是否满足循环条件
2、进入循环,进行累计,再进行新的读入。
5、数字的逆序
#include<stdio.h>
int main(int argc,char const *argv[]){
int x;
int digit;
int ret = 0;
scanf("%d",&x);
while(x > 0){
digit = x % 10;
x /= 10;
printf("%d",digit);
ret = ret * 10 + digit;
}
// printf("%d",ret);
return 0;
}
思路:用%10获取最后一位的值,然后再做处理。
如果是忽略0,则在循环当中构造新的数,如果还需要打印0,则在获取最低位的时候就打印出来。