c语言猜数字游戏四位数
时间: 2023-12-12 13:35:13 浏览: 383
以下是C语言实现猜数字游戏的代码,游戏中的四位数是随机生成的,玩家需要在10次机会内猜出这个四位数,每次猜测后会给出A和B的数量提示,A表示数字和位置都正确的数量,B表示数字正确但位置不正确的数量。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[4], b[4], i, j, Acount, Bcount, guess, count;
srand((unsigned)time(NULL)); // 用当前时间初始化随机数种子
for (i = 0; i < 4; i++) {
a[i] = rand() % 10; // 生成0-9之间的随机数
for (j = 0; j < i; j++) {
if (a[i] == a[j]) { // 如果重复则重新生成
i--;
break;
}
}
}
printf("猜数字游戏开始!\n");
count = 0;
while (count < 10) {
printf("请输入一个四位数:");
scanf("%d", &guess);
if (guess < 1000 || guess > 9999) { // 判断输入是否为四位数
printf("输入错误,请重新输入!\n");
continue;
}
for (i = 3; i >= 0; i--) { // 将输入的四位数拆分到数组b中
b[i] = guess % 10;
guess /= 10;
}
for (i = 0; i < 4; i++) { // 判断输入的四位数是否有重复数字
for (j = i + 1; j < 4; j++) {
if (b[i] == b[j]) {
printf("输入错误,数字不能重复!\n");
goto end;
}
}
}
Acount = Bcount = 0;
for (i = 0; i < 4; i++) { // 比较两个数组中的数字和位置
for (j = 0; j < 4; j++) {
if (a[i] == b[j]) {
if (i == j)
Acount++;
else
Bcount++;
}
}
}
printf("%dA%dB\n", Acount, Bcount);
if (Acount == 4) { // 如果猜对了则结束游戏
printf("恭喜你猜对了!\n");
break;
}
count++;
}
if (count == 10) // 如果猜了10次还没猜对则结束游戏
printf("很遗憾,你没有在规定次数内猜对!\n");
end:
return 0;
}
```
阅读全文