猜数游戏(五位数,无重复数字)的C语言代码
时间: 2024-05-06 17:18:51 浏览: 156
以下是一个简单的猜数游戏代码,可以让用户在五次机会内猜出一个无重复数字的五位数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int num[5];
int guess[5];
int i, j, count = 0;
srand(time(NULL)); // 初始化随机数种子
// 生成五位不重复的随机数
for (i = 0; i < 5; i++) {
num[i] = rand() % 10;
for (j = 0; j < i; j++) {
if (num[i] == num[j]) {
i--;
break;
}
}
}
printf("猜数游戏开始,您有五次机会猜出五位不重复的数字。\n");
while (count < 5) {
printf("第 %d 次猜测,请输入一个五位不重复的数字:", count + 1);
scanf("%d", &guess[count]);
// 判断是否符合规则
for (i = 0; i < 5; i++) {
for (j = 0; j < i; j++) {
if (guess[i] == guess[j]) {
printf("输入数字有重复,请重新输入。\n");
break;
}
}
if (guess[i] < 0 || guess[i] > 9) {
printf("输入数字不在 0~9 范围内,请重新输入。\n");
break;
}
}
if (i < 5) {
continue;
}
// 判断是否猜对
int a = 0, b = 0;
for (i = 0; i < 5; i++) {
if (guess[i] == num[i]) {
a++;
} else {
for (j = 0; j < 5; j++) {
if (j != i && guess[i] == num[j]) {
b++;
break;
}
}
}
}
if (a == 5) {
printf("恭喜您猜对了!\n");
break;
} else {
printf("猜测结果为:%dA%dB\n", a, b);
count++;
}
}
if (count == 5) {
printf("很遗憾,您没有在五次机会内猜出答案。\n");
printf("答案是 %d%d%d%d%d。\n", num[0], num[1], num[2], num[3], num[4]);
}
return 0;
}
```
该代码使用 `rand()` 函数生成五个不重复的随机数,并提供五次机会让用户猜测这五个数字的顺序。每次用户输入一个五位不重复的数字后,程序会检查其是否符合规则,并计算猜测结果,直到用户猜对或者机会用完。
阅读全文