用C语言实现猜数字游戏

时间:2022-05-10 05:37:30

本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下

问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示猜对了并结束本次游戏。

思路:整个程序分为三个部分。

1、使用printf完成一个主菜单,方便用户操作。
2、写一个game函数,完成猜数字游戏的过程。
3、主函数,调用game函数,最终实现猜数字游戏。

重点:如何生成一个随机数。

如果直接使用to_guess = rand() % 100 + 1,可以生成一个1~100之间的随机数,但每次重新运行程序,产生的随机数都是固定的,这就需要我们想办法来解决这个问题。通过srand函数来设置随机种子,并借助time函数让每次产生的随机数序列都完全不同。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu() {
  printf("****************************\n");
  printf("   猜数字游戏   \n");
  printf(" 1、开始游戏,0、结束游戏 \n");
  printf("   请输入0或1   \n");
  printf("****************************\n");
  return;
}
void game() {
  int num = 0;
  int to_guess = rand() % 100 + 1;
  while (1) {
     printf("请输入猜的数字:\n");
     scanf("%d", &num);
     if (num > to_guess) {
       printf("高了!\n");
     }
     else if (num < to_guess) {
       printf("低了!\n");
     }
     else {
       printf("恭喜你猜对了!\n");
       break;
     }
  }
}
int main() {
  int a;
  menu();
  srand((unsigned int) time(0));
  while (1) {
    printf("请输入您的选择:\n");
     if (scanf("%d", &a)) {
       if(a==1) {
         game();
     }
      else if (a == 0) {
         printf("goodbye!\n");
         break;
       }
       else {
         printf("您的输入有误,请重新输入\n");
       }
     }
  }
  system("pause");
  return 0;
}

运行结果:

用C语言实现猜数字游戏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/swag_wg/article/details/88815053