while循环里面scanf_C语言习题3--while 、do---while

51c888b83b801af09c65e7965a16a537.png

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值