由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置 也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止C语言
时间: 2024-03-13 14:47:01 浏览: 46
下面是一个用 C 语言实现的猜数字游戏,和 Python 的实现方式相似:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int check_num(char *num, char *guess) { // 检查猜测的数字是否正确
int a = 0, b = 0;
for (int i = 0; i < 4; i++) {
if (num[i] == guess[i]) {
a++;
} else {
for (int j = 0; j < 4; j++) {
if (num[i] == guess[j]) {
b++;
break;
}
}
}
}
printf("猜对了%d个数字,其中%d个数字的位置也对了。\n", a+b, a);
return a;
}
int main() {
char num[5], guess[5];
srand(time(NULL)); // 设置随机数种子
for (int i = 0; i < 4; i++) {
num[i] = rand() % 10 + '0'; // 生成 0~9 的随机数字
}
num[4] = '\0'; // 字符串结尾
printf("计算机已经想好了一个四位数,请你猜一下:\n");
while (1) {
scanf("%s", guess);
if (strlen(guess) != 4) {
printf("请输入一个四位数字!\n");
continue;
}
int a = check_num(num, guess);
if (a == 4) {
printf("恭喜你,猜对了!\n");
break;
} else {
printf("请继续猜一个四位数:\n");
}
}
return 0;
}
```
运行这段代码,计算机会随机生成一个四位数,然后让你猜这个数字。你每输入一个四位数字,计算机就会判断这个数字中有几位是猜对了,并且在对的数字中又有几位位置也对了,然后给出提示让你再猜,直到你猜出这个数字为止。
阅读全文