![51c888b83b801af09c65e7965a16a537.png](https://i-blog.csdnimg.cn/blog_migrate/e3fb612039bbdb408fa0daaab1a45f23.jpeg)
1、判断一个数的位数N
int x = 532 ;
int n = 0 ;
x /= 10 ;
n++;
while(x>0){
x /= 10 ;
n++;
}
printf("X是%d位数",n);
return 0;
IF条件语句,条件成立就执行一次然后离开
while循环语句,当条件满足,进入循环体,接着再判断条件,直到不满足,跳出循环体。
循环体内要有改变条件的语句。
do{循环体}----while(条件);
do,while:先执行一次循环体,在判断条件是否满足,满足do的继续循环体,不满足离开。
int x = 532 ;
int n = 0 ;
do{
x /= 10 ;
n++;
}
while(x>0);
printf("X是%d位数",n);
return 0;
do无论如何都要做一遍,while有可能一遍都不做的。区别。
2、计算log2X的值
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;
编程有多种方法去解决
3,、循环计数54321
int count = 5 ;
while(count >= 1){
printf("%dn",count);
count -- ;
}
printf("发射!n");
return 0;
4、猜数游戏
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(0));
int number = rand()%100+1; //对100取余
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;
}
5、求正整数的平均数
#include <stdio.h>
int main()
{
int number;
int sum = 0;
int count = 0;
scanf("%d",&number);
while(number != -1)
{sum += number;
count ++;
scanf("%d",&number);
}
printf("%f",1.0*sum/count);
return 0;
}
6、对任意位数逆序
#include <stdio.h>
int main()
{
int x ;
scanf("%d",&x);
int digit;
int ret = 0;
while(x>0){
digit = x%10 ;
printf("%dn",digit);
ret = ret*10 + digit;
x /= 10;
}
printf("%d",ret);
return 0;
}