鱼C论坛

 找回密码
 立即注册
查看: 1202|回复: 4

[已解决]题目:猜数游戏

[复制链接]
发表于 2020-3-23 12:48:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. /*
  2. 2020年3月23日10:29:11
  3. 目的 :做题
  4. 题目 :
  5. 猜数游戏。
  6. 首先通过计算机产生一个10~100之间的随机整数,然后由人来猜这个随机数是多少,最多猜10次。
  7. 要求猜的数从键盘输入,如果输入的数比随机数大,则在显示器上显示“您猜的数大了,加油!”,
  8. 如果输入的数比随机数小,则在显示器上显示“您猜的数小了,加油!”,
  9. 直到猜中或者猜的次数达到10次都没猜中结束游戏。如果猜中,显示“恭喜您,猜对了!”,
  10. 并输出所有猜过的数及其猜的次数;如果猜了10次都没猜中,则输出“猜数结束,游戏失败!”。

  11. 问题分析:
  12. 1.首先调用 随机函数 产生一个10~100之间的随机整数
  13. 2.if else  

  14. */
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17. #include <time.h>

  18. int main (void)
  19. {
  20.         int a;//用于随机
  21.         int i;//猜十次
  22.         int c;//猜的数
  23.         srand((int)time(0));//产生不同的随机数种子
  24.         a =rand()%90+10;
  25.         printf("请输入猜的数:");
  26.         scanf("%d",c);
  27.         for(i=10;i<=10;i++)
  28.         {
  29.                 if(c>a)
  30.                          printf("您猜的数大了,加油!");
  31.                 else if(c<a)
  32.                         printf("您猜的数小了,加油! ");
  33.                 else
  34.                         printf("您猜对了!\n");
  35.                         printf("您一共猜数有 %d次",i);
  36.                        
  37.                         for(;c<=10;c++)
  38.                         {
  39.                                 printf("您猜的数有:%3d",c);
  40.                     }                         
  41.         }
  42.        
  43.         return 0;
  44. }
复制代码



题目 :
猜数游戏。
首先通过计算机产生一个10~100之间的随机整数,然后由人来猜这个随机数是多少,最多猜10次。
要求猜的数从键盘输入,如果输入的数比随机数大,则在显示器上显示“您猜的数大了,加油!”,
如果输入的数比随机数小,则在显示器上显示“您猜的数小了,加油!”,
直到猜中或者猜的次数达到10次都没猜中结束游戏。如果猜中,显示“恭喜您,猜对了!”,
并输出所有猜过的数及其猜的次数;如果猜了10次都没猜中,则输出“猜数结束,游戏失败!”。


到了后面就不会写了,不知道怎么去用数组来输入
最佳答案
2020-3-23 13:11:55
程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;
每次输入的数据没有保存,被下一次输入的值覆盖掉了,当然,昵称程序只输入了一次。
最后输出猜过的值应该在判断的for循环外;
各种小错误。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. int main (void)
  5. {
  6.     int a;//用于随机
  7.     int i,j;//猜十次
  8.     int c[10];//猜的数
  9.     srand((int)time(0));//产生不同的随机数种子
  10.     a =rand()%90+10;
  11.     printf("请输入猜的数:");
  12.     for(i=0;i<10;i++)
  13.     {
  14.         scanf("%d",&c[i]);
  15.         if(c[i]>a)
  16.             printf("您猜的数大了,加油!\n");
  17.         else if(c[i]<a)
  18.             printf("您猜的数小了,加油!\n ");
  19.         else
  20.         {
  21.             printf("您猜对了!\n");
  22.             break;
  23.         }
  24.         printf("请重新输入:");
  25.     }
  26.     printf("您一共猜数有 %d次,您猜的数有\n",i+1);
  27.     for(j=0;j<=i;j++)
  28.     {
  29.         printf("%3d",c[j]);
  30.     }
  31.     return 0;
  32. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-3-23 13:11:55 | 显示全部楼层    本楼为最佳答案   
程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;
每次输入的数据没有保存,被下一次输入的值覆盖掉了,当然,昵称程序只输入了一次。
最后输出猜过的值应该在判断的for循环外;
各种小错误。
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. int main (void)
  5. {
  6.     int a;//用于随机
  7.     int i,j;//猜十次
  8.     int c[10];//猜的数
  9.     srand((int)time(0));//产生不同的随机数种子
  10.     a =rand()%90+10;
  11.     printf("请输入猜的数:");
  12.     for(i=0;i<10;i++)
  13.     {
  14.         scanf("%d",&c[i]);
  15.         if(c[i]>a)
  16.             printf("您猜的数大了,加油!\n");
  17.         else if(c[i]<a)
  18.             printf("您猜的数小了,加油!\n ");
  19.         else
  20.         {
  21.             printf("您猜对了!\n");
  22.             break;
  23.         }
  24.         printf("请重新输入:");
  25.     }
  26.     printf("您一共猜数有 %d次,您猜的数有\n",i+1);
  27.     for(j=0;j<=i;j++)
  28.     {
  29.         printf("%3d",c[j]);
  30.     }
  31.     return 0;
  32. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-23 13:14:17 | 显示全部楼层
sunrise085 发表于 2020-3-23 13:11
程序问题挺多的。
for循环初始条件错了;
在for循环内没有修改c的值;

做题目的时候有些心浮气躁了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 13:32:43 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-23 13:37 编辑
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>

  4. int randint(int a , int b)
  5. {
  6.         int c                           ;
  7.         srand(time(0))                  ;
  8.         if(a > b) c = a , a = b , b = c ;
  9.         return a + rand() % (b - a + 1) ;      
  10. }

  11. main(void)
  12. {
  13.         int i , j , secret , guess                                             ;
  14.         secret = randint(10 , 100)                                             ;
  15.         printf("\n")                                                           ;
  16.         for(guess = secret + 1 , i = 0 ; i < 10 && guess != secret ; i ++) {
  17.                 printf("请输入一个整数:")                                     ;
  18.                 scanf("%d" , & guess)                                          ;
  19.                 if(guess == secret) {
  20.                         printf("恭喜您,猜对了!\n")                             ;
  21.                 } else {
  22.                         if(guess > secret) printf("您猜的数大了,加油!\n")      ;
  23.                         else printf("您猜的数小了,加油!\n")                    ;
  24.                         if(i < 10 - 1) {
  25.                                 printf("您还剩 %d 次机会\n\n" , 10 - i - 1)    ;
  26.                         } else {
  27.                                 printf("\n猜数结束,游戏失败!\n")               ;
  28.                                 printf("其实,这个目标数是:%d\n\n" , secret)  ;
  29.                         }
  30.                 }
  31.         }
  32. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-23 13:34:39 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-6 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表