我想让每次运行程序可以反复猜多个数,但是运行时发现猜的数还是同一个,想蹲一下该怎么改能实现
#include
#include
#include
int main()
{
int gue,n=0;
char thing;
srand((unsigned int)time(NULL));
int num=rand()%100+1;//生成随机数
{
do
{printf("是否开始游戏(Y/N)");
scanf(" %c",&thing);
switch(thing)
{case 'Y':
do{
printf("请输入你所猜的数字:");
scanf(" %d",&gue);
if(num!=gue)
{
if(num
printf("你猜的数字大啦!");
else
printf("你猜的数字小啦!");
printf("Wrong!");
n++;
}
else
printf("Right!");
printf("您猜的次数为:%d",n);
}
while(num!=gue&&n<10);
case 'N':
printf("猜数结束");
break;
}
}
while(thing=='Y');
}
return 0;
}
int num = rand() % 100 + 1; //生成随机数
n = 0;
这几句放到do里
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int gue, n = 0;
char thing;
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1; //生成随机数
{
do
{
printf("是否开始游戏(Y/N)");
scanf(" %c", &thing);
switch (thing)
{
case 'Y':
do
{
printf("请输入你所猜的数字:");
scanf(" %d", &gue);
if (num != gue)
{
if (num < gue)
printf("你猜的数字大啦!");
else
printf("你猜的数字小啦!");
printf("Wrong!");
n++;
}
else
printf("Right!");
printf("您猜的次数为:%d", n);
} while (num != gue && n < 10);
case 'N':
printf("猜数结束");
break;
}
} while (1);
}
return 0;
}
随机数你只在最开始的时候生成了一次,应该在循环中进行生成。
按照逻辑,应该在用户选择要开始游戏的时候,开始初始化计数值n=0,同时生成一个随机数,所以应该在 case 'Y'
后面生成随机数:
case 'Y':
n = 0; // 初始化计数值
num = rand() % 100 + 1; //生成随机数