玩家猜数游戏(v1.0)

秒速五厘米 2022-11-12 13:50 254阅读 0赞

题目要求:

  1. 系统随机生成一个0~99之间的整数;

  2. 玩家输入一整数, 若和系统随机生成的数匹配, 则可随机抽取一二三等奖(由系统随即决定);

  3. 若输入的数和系统随机生成的数不匹配, 系统根据玩家给出的数值进行大小提示;

  4. 玩家共有十次机会猜数, 若十次过后依旧未能猜中, 系统提示机会已经用完.

[运行问题汇总] ①若将f()函数中的magic、guess变量更改为char类型, 无论你输入多少次未能匹配的数值, 计数变量i的值一直停留在1, 而未能按照设想一直增1.②rand()函数虽然可以生成随机数, 但每次运行程序时生成的随机数都是一样的.

[注]为了节省主存空间, 我将数值范围较小的数值全部用char类型变量存储.

问题程序:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. char f()//用户猜数流程
  4. {
  5. char magic=rand()%100;//生成一个介于0~99间的整数(包括0和99)
  6. char guess;//记录用户输入的整数
  7. char i=0;//循环计数变量
  8. printf("当前次数:\n");
  9. while(i<10)
  10. {
  11. printf("%d. 请输入一个介于0~99之间的整数: ", i+1);
  12. //printf("i=%d\n", i);//调试语句
  13. scanf("%d", &guess);
  14. if(guess==magic)
  15. {
  16. printf("猜对了!\n");
  17. return 1;
  18. }
  19. else if(guess>magic)
  20. {
  21. printf("猜大了!\n");
  22. }
  23. else
  24. {
  25. printf("猜小了!\n");
  26. }
  27. i++;
  28. }
  29. //若程序执行至此, 说明10次猜数机会已经用完.
  30. return 0;
  31. }
  32. char f2()//若用户猜对, 此程序随机决定用户的获奖等级
  33. {
  34. char c=rand()%100;//随机生成一个0~99的整数
  35. if(c<=5)
  36. {
  37. return 1;
  38. }//一等奖
  39. else if(c<=30)
  40. {
  41. return 2;
  42. }//二等奖
  43. else
  44. {
  45. return 3;
  46. }//三等奖
  47. }
  48. int main()
  49. {
  50. if(f()==1)
  51. {
  52. printf("恭喜您, 奖品到手!\n");
  53. if(f2()==1)
  54. {
  55. printf("一等奖.\n");
  56. }
  57. else if(f2()==2)
  58. {
  59. printf("二等奖.\n");
  60. }
  61. else
  62. {
  63. printf("三等奖.\n");
  64. }
  65. }
  66. else
  67. {
  68. printf("很遗憾, 您的10次机会已经用完, 欢迎再次参与!\n");
  69. }
  70. //
  71. return 0;
  72. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjA0ODQ2Mw_size_16_color_FFFFFF_t_70

正确程序:

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. char f()//用户猜数流程
  4. {
  5. int magic=rand()%100;//生成一个介于0~99间的整数(包括0和99)
  6. int guess;//记录用户输入的整数
  7. char i=0;//循环计数变量
  8. printf("当前次数:\n");
  9. while(i<10)
  10. {
  11. printf("%d. 请输入一个介于0~99之间的整数: ", i+1);
  12. //printf("i=%d\n", i);//调试语句
  13. scanf("%d", &guess);
  14. if(guess==magic)
  15. {
  16. printf("猜对了!\n");
  17. return 1;
  18. }
  19. else if(guess>magic)
  20. {
  21. printf("猜大了!\n");
  22. }
  23. else
  24. {
  25. printf("猜小了!\n");
  26. }
  27. i++;
  28. }
  29. //若程序执行至此, 说明10次猜数机会已经用完.
  30. return 0;
  31. }
  32. char f2()//若用户猜对, 此程序随机决定用户的获奖等级
  33. {
  34. char c=rand()%100;//随机生成一个0~99的整数
  35. if(c<=5)
  36. {
  37. return 1;
  38. }//一等奖
  39. else if(c<=30)
  40. {
  41. return 2;
  42. }//二等奖
  43. else
  44. {
  45. return 3;
  46. }//三等奖
  47. }
  48. int main()
  49. {
  50. if(f()==1)
  51. {
  52. printf("恭喜您, 奖品到手!\n");
  53. if(f2()==1)
  54. {
  55. printf("一等奖.\n");
  56. }
  57. else if(f2()==2)
  58. {
  59. printf("二等奖.\n");
  60. }
  61. else
  62. {
  63. printf("三等奖.\n");
  64. }
  65. }
  66. else
  67. {
  68. printf("很遗憾, 您的10次机会已经用完, 欢迎再次参与!\n");
  69. }
  70. //
  71. return 0;
  72. }

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjA0ODQ2Mw_size_16_color_FFFFFF_t_70 1

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjA0ODQ2Mw_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,254人围观)

还没有评论,来说两句吧...

相关阅读

    相关 游戏(v2.0)

    题目要求: 1. 系统随机生成一个介于0~99之间的整数(包括0和99); 2. 玩家输入一整数, 系统根据玩家输入的数值, 提示输入数值与随机数的大小关系, 以供玩家参考

    相关 游戏(v1.0)

    题目要求: 1. 系统随机生成一个0~99之间的整数; 2. 玩家输入一整数, 若和系统随机生成的数匹配, 则可随机抽取一二三等奖(由系统随即决定); 3. 若输入的数和

    相关 游戏

    一个小小的程序,找点乐趣。。哈哈 目前我觉得能最快的找出数字的方法是二分法。。。 代码: \include <stdio.h> \include <stdlib.h>

    相关 【C语言】游戏

    系统随机产生四个不同的有序的数字 (从小到大排列),等待用户输入猜测的结果, 用A来表示数字正确且位置正确的个数 ,用B来表示数字正确但位置不正确的个数,给八次机会,猜中则游戏

    相关 游戏

    猜数小游戏: 1. 从键盘录入你猜的数; 2. 比较环节,如果猜大了,提示猜大了重新猜测;如果猜小了,提示猜小了重新猜测;如果相等,提醒猜中了。 3. 循环环节,