#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{srand (time(0));
int x =rand()%100+1 ;
int n =0;
int a =0;
do
{scanf ("%d",&a);
printf("请猜猜这个数是多少:");
n++;
if( a>x ){
printf("你猜的数字有点大哦,再猜一次吧。\n");
} else if( a<x){
printf("你猜的数字有点小哦,再猜一次吧。\n");
}
} while ( a != x);
printf("太好了,你只用了%d次就猜出来了,没错,这个数就是%d。\n", n, x);
return 0;
}
在do前面进行的话需要先判断再循环
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand (time(0));
int x =rand()%100+1 ;
int n =0;
int a =0;
scanf ("%d",&a);
while ( a != x)
{
printf("请猜猜这个数是多少:");
n++;
if( a>x )
{
printf("你猜的数字有点大哦,再猜一次吧。\n");
}
else if( a<x)
{
printf("你猜的数字有点小哦,再猜一次吧。\n");
}
scanf ("%d",&a);
}
printf("太好了,你只用了%d次就猜出来了,没错,这个数就是%d。\n", n, x);
return 0;
}
因为在do前面你只输入了一次猜测的数据,然后这个猜测的数据一直在做 do while无限循环,
而在里面的话你可以不断更新猜测的数据,直到他和x相等。
在do前面,相当于a的值是一个定值,这个定值不会改变,那么就永远猜不对数,也就是死循环
望采纳,谢谢!
循环里得有scanf输入a
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{ srand (time(0));
int x =rand()%100+1 ;
int n =0;
int a =0;
scanf ("%d",&a);
do
{
printf("请猜猜这个数是多少:");
n++;
if( a>x )
{
printf("你猜的数字有点大哦,再猜一次吧。\n");
}
else if( a<x)
{
printf("你猜的数字有点小哦,再猜一次吧。\n");
}
scanf ("%d",&a);
} while ( a != x);
printf("太好了,你只用了%d次就猜出来了,没错,这个数就是%d。\n", n, x);
return 0;
}