用C语言写这个程序 清数字游戏.程序产生一个四位随机整数,这个四位数各个数码均不相同,你能猜出这个数是多少吗? 规则如下: 1.如果你猜中一位数字但位置不正确,则显示一个- 2.如果你清中一位数字且位置也正确,则显示一个+ 如:假如原数为4689.你猜的数为3694.则显示--+ 3.你只有十次机会,努力吧少年 按任意键开始游戏: 输出的提示结果只能是+和- 输入的猜测数字不能超过4位也不能小于4位,否则就会提醒是不合格数字 当结束一场游戏后可以选择输入Y或N开始新的游戏,或者直接结束游戏 每输入一次就会提醒你还有多少次机会在输出提示信息时,只能使用 + 和 -,不能使用其他字符,否则程序无法正确判断猜测结果。
时间: 2023-06-25 20:05:15 浏览: 92
以下是用C语言实现的清数字游戏程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand((unsigned)time(NULL)); // 用系统时间作为随机数种子
int answer[4]; // 存储答案的四个数字
int guess[4]; // 存储玩家猜测的四个数字
int i, j, k, count = 0;
char choice;
do {
// 产生一个四位随机整数,各个数码均不相同
do {
answer[0] = rand() % 10;
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");
count = 10;
while (count > 0) {
printf("请输入你猜测的四位数字(例如:1234):");
scanf("%d", &k);
if (k < 1000 || k > 9999) { // 输入的数字不合法
printf("输入的数字不合法,请重新输入!\n");
continue;
}
guess[0] = k / 1000;
guess[1] = k % 1000 / 100;
guess[2] = k % 100 / 10;
guess[3] = k % 10;
int right = 0; // 记录位置和数字都猜对的个数
int wrong = 0; // 记录数字猜对但位置不对的个数
for (i = 0; i < 4; i++) {
if (guess[i] == answer[i]) {
right++;
} else {
for (j = 0; j < 4; j++) {
if (guess[i] == answer[j]) {
wrong++;
}
}
}
}
count--;
if (right == 4) { // 全部猜对
printf("恭喜你猜对了!\n");
break;
} else {
printf("%dA%dB\n", right, wrong);
printf("你还有%d次机会!\n", count);
}
}
if (count == 0) { // 机会用完了
printf("你已经猜了10次,游戏结束!答案是%d%d%d%d。\n", answer[0], answer[1], answer[2], answer[3]);
}
printf("是否开始新的一局游戏?(Y/N):");
getchar(); // 清空输入缓冲区
scanf("%c", &choice);
} while (choice == 'Y' || choice == 'y');
return 0;
}
```
程序中使用了 `rand()` 函数来产生随机数,并通过循环确保产生的四位数各个数码均不相同。在游戏过程中,用 `guess` 数组存储玩家猜测的四个数字,用 `answer` 数组存储正确答案的四个数字。通过对 `guess` 和 `answer` 数组的比较,得出猜对数字且位置正确的个数和猜对数字但位置不正确的个数,然后输出相应的提示信息。如果猜对全部四个数字,则游戏胜利;如果猜错了10次,则游戏失败。玩家可以选择是否开始新的一局游戏。
阅读全文