猜数游戏C语言程序设计

编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所... 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。 展开
 我来答
百度网友1cbedfe
2013-07-14
知道答主
回答量:9
采纳率:0%
帮助的人:3.7万
展开全部

这道题不难,只要知道怎样用c语言生成1~100的随机数就很好办了!

附代码如下!
#include<stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
index:
 printf("请选择是否进行猜数!\n1:是\t0:否\n");
 int j;
 scanf("%d",&j);
 if(j == 0)
  return 0;
 int i,x = rand() % 100 + 1,input;
 for(i = 0;i <10;i ++)
 {
  printf("请输入猜想的1至100之间的整数:");
  scanf("%d",&input);
  if(input == x)
  {
   printf("猜想正确!\t你一共猜想了%d次\n",i + 1);
   goto index;
  }
  if(input < x)
  {
   if((i + 1) >= 10)
   {
    printf("\n此次猜想失败!\n");
    goto index;
   }
   else
    printf("所猜数过小!\t请再猜一次!\n");
  }
  if(input > x)
  {
   if((i + 1) >= 10)
   {
    printf("\n此次猜想失败!\n");
    goto index;
   }
   else
    printf("所猜数过大!\t请再猜一次!\n");
  }
 }

为了简化,使用了goto语句。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mg199303
2013-07-14 · TA获得超过412个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:133万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

//main
int main()
{
int num;
char ch;
num=0;

for(;;)
{
printf("please choose what you want to do\n");
printf("1.guess number; 2.quit\n");
scanf("%c",&ch);
fflush(stdin);
printf("**************************************\n");
switch(ch)
{
case '1':
int guessnum;
int tag,i;

//提供rand()产生随机数的种子
srand((unsigned)time(NULL));
for(;num<1||num>100;)
{
//产生1-100的随机数
num=rand()%100 + 1;
printf("%d",num);
}
printf("the number between 1 to 100,please enter a number to guess\n");
for(i=1;;i++)
{
scanf("%d",&guessnum);

//一共只有10次的机会
if(i==10)
{
printf("sorry!your chances was ran out!\n\n");
tag=0;
break;
}
if(guessnum==num)
{
printf("congradulation!you are right!\n\n");
tag=1;
break;
}

printf("you are wrong!try again!\n");
//输出还有几次机会
printf("you still have ");
printf("%d",10-i);
printf(" chances!\n\n");
tag=0;
}
break;
case '2':
system("pause");
exit(0);
}
}
return 0;
}
好吧,那个tag是多余的定义,本来以为会有用的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ungeilimage
推荐于2017-09-07
知道答主
回答量:3
采纳率:0%
帮助的人:2.8万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char * argv[])
{
srand((unsigned)time(NULL));
int a = rand()%100;
a+=1;
int b,c;
c = 0;
while (c < 10)
{
printf("Please enter a number: ");
if (scanf("%d", &b) == 0)
{
fprintf(stderr, "Invalid entry.\n");
return EXIT_FAILURE;
}
else
{
if (b == a)
{
printf("You are correct, the number is %d!\n", a);
printf("You used %d times to get the answer.\n", c);
break;
}
else if (b > a)
printf("The number is bigger than it suppose to.\n");
else
printf("The number is smaller than it suppose to.\n");
c++;
}
if (c == 10)
{
printf("You used 10 times, please try again!\n");
break;
}
}

return EXIT_SUCCESS;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
050104010138
2013-07-14 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:22万
展开全部
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int guess(int start);
int main(int argc, char* argv[])
{
char ctrl;
for(;;)
{
printf("猜数字\n");

printf("a: 开始\n");
printf("b: 退出\n");

scanf("%c", &ctrl);
if(ctrl == 'a')
{
srand((unsigned)time(NULL));
guess(rand()%100);
}
else if(ctrl == 'b')
{
return 0;
}
}
}
int guess(int start)
{
char gessstr[3];
int gess;
int max = 100;
int min = 1;
int count = 0;
printf("start[%d]\n", start);

for(;;)
{
printf("请输入 1 ~ 100 之间的一个数字\n");
scanf("%s", gessstr);
gess = atoi(gessstr);
count ++;
if(strcmp(gessstr, "b") == 0)
{
return -1;
}

printf("gess[%d]\n", gess);
if(gess < 1 || gess > 100)
{
printf("对不起,您输入的数字[%d],不在1 ~ 100 之间\n", gess);
printf("请重新输入\n");
continue;
}
if(gess < start)
{
min = gess;
printf("请输入[%d]到a[%d]之间的数字\n", min, max);
}
else if(gess > start)
{
max = gess;
printf("请输入[%d]到[%d]之间的数字\n", min, max);
}
else
{
printf("恭喜,您猜对了\n");
break;
}

if(count == 10)
{
break;
}
}
if(count == 10)
{
printf("您已经猜了10次,没有机会了\n");
}
else
{
printf("您使用了[%d]次,猜中了答案\n", count);
}
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式