c语言编程,编译猜数字游戏?
编程实现猜数字游戏,请在程序中设一个谜底为正整数,要求猜谜者每次输入一个正整数,如果和谜底--样输出“恭喜你猜对了”,如果和谜底不--样则再次要求输入一-个正整数,直到猜...
编程实现猜数字游戏,请在程序中设一个谜底为正整
数,要求猜谜者每次输入一个正整数,如果和谜底- -样
输出“恭喜你猜对了”,如果和谜底不- -样则再次要求输
入一-个正整数,直到猜对为止。要求:写出你的详细解
题思路(10分) 写出详细完整的代码(15分) 并对你的
代码进注释 展开
数,要求猜谜者每次输入一个正整数,如果和谜底- -样
输出“恭喜你猜对了”,如果和谜底不- -样则再次要求输
入一-个正整数,直到猜对为止。要求:写出你的详细解
题思路(10分) 写出详细完整的代码(15分) 并对你的
代码进注释 展开
2个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void main()/*主函数*/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<5;i++)/*随即产生5个数*/
{
srand((unsigned int)time(NULL));/*以当前时间为种子*/
answer[i]=rand()%9+1;/*保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了*/
for(j=0;j<i;j++)
while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/
{
answer[i]=rand()%9+1;
j=-1;/*新生成的数要重新检查,此步后马上执行j++*/
}
}
printf("随即的5个数是:");
for(i=0;i<5;i++)
printf("%d",answer[i]);/*输出结果到屏幕,便于测试*/
printf("\n");
printf("请输入猜测数字:\n%");
a=0;
while(a!=5)/*a记录位置对并且数也对的,如果5个都对就是猜对了*/
{
a=0;
b=0;/*b记录数是有的,但位置不对的个数*/
times++;
printf("第 %d 次猜测:\t",times);
scanf("%d",&guess);
while(guess<12345||guess>99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/*检查数据对错*/
{
for(j=0;j<5;j++)
{
if(g[i]==answer[j])/*如果猜得的数与结果的某个数一样就把b加1*/
{
b++;
if(i==j)/*如果位置也对,那就是a加1了,对应的b已经加过,应该减1*/
{
a++;
b--;
}
}
}
}
printf("猜测结果:%dA%dB\n",a,b);
if(a==5)
printf("\t答案正确\n"); /*如果a=5就是猜对了*/
}
}
#include<stdlib.h>
#include<math.h>
#include<time.h>
void main()/*主函数*/
{
int a,b,times=0,i,j,guess=0,answer[5],g[5];
for(i=0;i<5;i++)/*随即产生5个数*/
{
srand((unsigned int)time(NULL));/*以当前时间为种子*/
answer[i]=rand()%9+1;/*保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了*/
for(j=0;j<i;j++)
while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/
{
answer[i]=rand()%9+1;
j=-1;/*新生成的数要重新检查,此步后马上执行j++*/
}
}
printf("随即的5个数是:");
for(i=0;i<5;i++)
printf("%d",answer[i]);/*输出结果到屏幕,便于测试*/
printf("\n");
printf("请输入猜测数字:\n%");
a=0;
while(a!=5)/*a记录位置对并且数也对的,如果5个都对就是猜对了*/
{
a=0;
b=0;/*b记录数是有的,但位置不对的个数*/
times++;
printf("第 %d 次猜测:\t",times);
scanf("%d",&guess);
while(guess<12345||guess>99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/
{
printf("你输入了一个非常规数据,请重新输入:\t");
scanf("%d",&guess);
}
for(i=4;i>-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/
{
g[i]=guess%10;
guess=(guess-g[i])/10;
}
for(i=0;i<5;i++)/*检查数据对错*/
{
for(j=0;j<5;j++)
{
if(g[i]==answer[j])/*如果猜得的数与结果的某个数一样就把b加1*/
{
b++;
if(i==j)/*如果位置也对,那就是a加1了,对应的b已经加过,应该减1*/
{
a++;
b--;
}
}
}
}
printf("猜测结果:%dA%dB\n",a,b);
if(a==5)
printf("\t答案正确\n"); /*如果a=5就是猜对了*/
}
}
2020-06-19
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define TOP 100
int main(void) {
srand((unsigned)time(NULL));
int ans = rand() % TOP + 1; //随机产生一个1-TOP的数作为谜底
int guess;
do {
printf("请输入1-%d的一个数:", TOP);
scanf("%d", &guess);
if (guess > ans)
puts("大了!");
else if (guess < ans)
puts("小了!");
} while (guess != ans);
puts("恭喜你猜对了");
return 0;
}
#include <stdlib.h>
#include <time.h>
#define TOP 100
int main(void) {
srand((unsigned)time(NULL));
int ans = rand() % TOP + 1; //随机产生一个1-TOP的数作为谜底
int guess;
do {
printf("请输入1-%d的一个数:", TOP);
scanf("%d", &guess);
if (guess > ans)
puts("大了!");
else if (guess < ans)
puts("小了!");
} while (guess != ans);
puts("恭喜你猜对了");
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询