C语言编程猜数字游戏:计算机随机生成一个各位数字不重复的四位数,系统根据玩家输入的数字给出提示信息: A--表示位置与数字均正确的个数;B--表示数字正确但位置不正确的个数。玩家根据提示调整输入,如果玩家输入超过八次仍不成功,游戏自动结束。
时间: 2024-03-17 17:41:29 浏览: 22
好的,以下是一个简单的C语言猜数字游戏程序,可以满足你的需求:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int answer[4]; // 存储正确答案的数组
int guess[4]; // 存储玩家猜测的数字的数组
int A, B; // 存储提示信息中的A和B的个数
int i, j, k; // 循环计数器
int count = 0; // 猜测次数计数器
int flag = 0; // 标志位,记录是否猜中答案
srand(time(NULL)); // 用系统时间初始化随机数种子
// 生成正确答案
do
{
answer[0] = rand() % 9 + 1; // 第一位数字不能为0
answer[1] = rand() % 10;
answer[2] = rand() % 10;
answer[3] = rand() % 10;
} while (answer[0] == answer[1] || answer[0] == answer[2] || answer[0] == answer[3] || answer[1] == answer[2] || answer[1] == answer[3] || answer[2] == answer[3]);
// 游戏开始
printf("猜数字游戏开始!\n");
printf("请猜一个没有重复数字的四位数:\n");
while (count < 8 && flag == 0)
{
// 读取玩家猜测的数字
scanf("%d", &guess[0]);
scanf("%d", &guess[1]);
scanf("%d", &guess[2]);
scanf("%d", &guess[3]);
// 计算提示信息中的A和B的个数
A = 0;
B = 0;
for (i = 0; i < 4; i++)
{
if (guess[i] == answer[i])
{
A++;
}
else
{
for (j = 0; j < 4; j++)
{
if (guess[i] == answer[j])
{
B++;
}
}
}
}
// 输出提示信息
printf("%dA%dB\n", A, B);
// 判断是否猜中答案
if (A == 4)
{
printf("恭喜你猜中了!正确答案是:%d %d %d %d\n", answer[0], answer[1], answer[2], answer[3]);
flag = 1;
}
else
{
count++;
if (count < 8)
{
printf("请再猜一个没有重复数字的四位数:\n");
}
else
{
printf("很遗憾,你没有在规定次数内猜中答案!正确答案是:%d %d %d %d\n", answer[0], answer[1], answer[2], answer[3]);
}
}
}
return 0;
}
```
这个程序使用了一个do-while循环来生成正确答案,确保每个数字都不相同。然后,在主循环中,使用了一个while循环来让玩家不断猜测,直到猜中答案或者猜测次数超过八次。在每次猜测之后,程序会根据玩家猜测的数字计算出提示信息中的A和B的个数,并输出提示信息。如果玩家猜中了答案,程序会输出恭喜信息并结束游戏;否则,程序会提示玩家再猜一次,并将猜测次数计数器加一。