用C语言写这个程序 清数字游戏.程序产生一个四位随机整数,这个四位数各个数码均不相同,你能猜出这个数是多少吗? 规则如下: 1.如果你猜中一位数字但位置不正确,则显示一个- 2.如果你清中一位数字且位置也正确,则显示一个+ 如:假如原数为4689.你猜的数为3694.则显示--+ 3.你只有十次机会,努力吧少年 按任意键开始游戏: 输出的提示结果只能是+和- 输入的猜测数字不能超过4位也不能小于4位,否则就会提醒是不合格数字 当结束一场游戏后可以选择输入Y或N开始新的游戏,或者直接结束游戏 每输入一次就会提醒你还有多少次机会
时间: 2023-06-25 09:05:21 浏览: 54
以下是用C语言实现的数字游戏程序:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int answer[4]; // 存储正确答案的数组
int guess[4]; // 存储用户猜测的数字的数组
int attempt = 0; // 记录用户已尝试的次数
int correct = 0; // 记录用户猜中的数字和位置都正确的个数
int right_num = 0; // 记录用户猜中的数字但位置不正确的个数
char play_again; // 记录用户是否想再次玩游戏
srand((unsigned)time(NULL)); // 随机数种子初始化
do {
// 产生一个四位随机整数,这个四位数各个数码均不相同
do {
answer[0] = rand() % 9 + 1;
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");
attempt = 0;
do {
printf("请输入一个四位数字:");
scanf("%4d", &guess[0]);
if (guess[0] < 1000 || guess[0] > 9999) { // 确保用户输入的数字是四位数
printf("输入不合格!请输入一个四位数字。\n");
continue;
}
guess[1] = guess[0] / 1000 % 10;
guess[2] = guess[0] / 100 % 10;
guess[3] = guess[0] / 10 % 10;
guess[4] = guess[0] % 10;
correct = 0;
right_num = 0;
for (int i = 1; i <= 4; i++) {
if (guess[i] == answer[i - 1]) {
correct++;
} else if (guess[i] == answer[0] || guess[i] == answer[1] || guess[i] == answer[2] || guess[i] == answer[3]) {
right_num++;
}
}
printf("%dA%dB\n", correct, right_num);
attempt++;
if (attempt == 10) { // 超过10次机会,游戏结束
break;
}
printf("还有%d次机会。\n", 10 - attempt);
} while (correct < 4);
if (correct == 4) { // 用户猜中了正确的答案
printf("恭喜你猜对了!\n");
} else { // 用户没有在10次机会内猜中正确的答案
printf("很遗憾,你没有猜中正确的数字。正确答案是%d%d%d%d。\n", answer[0], answer[1], answer[2], answer[3]);
}
printf("是否继续游戏?(Y/N)");
scanf(" %c", &play_again);
} while (play_again == 'Y' || play_again == 'y');
printf("游戏结束,谢谢参与!\n");
return 0;
}
```
在程序中,我们使用了一个 `answer` 数组来存储正确的答案,使用一个 `guess` 数组来存储用户猜测的数字。每次用户输入一个猜测的数字后,我们会遍历这个数组,判断其中有多少数字和位置都正确,有多少数字正确但位置不正确。如果用户在10次机会内猜中了正确的答案,程序会输出恭喜信息;否则,程序会输出正确的答案,并询问用户是否想再次玩游戏。
程序运行结果示例:
```
游戏开始!
请输入一个四位数字:1234
0A2B
还有9次机会。
请输入一个四位数字:5678
0A2B
还有8次机会。
请输入一个四位数字:9012
0A1B
还有7次机会。
请输入一个四位数字:3456
0A2B
还有6次机会。
请输入一个四位数字:7890
0A3B
还有5次机会。
请输入一个四位数字:6789
0A4B
还有4次机会。
请输入一个四位数字:6798
0A3B
还有3次机会。
请输入一个四位数字:6791
0A2B
还有2次机会。
请输入一个四位数字:6792
1A2B
还有1次机会。
请输入一个四位数字:6793
2A1B
还有0次机会。
很遗憾,你没有猜中正确的数字。正确答案是6584。
是否继续游戏?(Y/N)y
游戏开始!
请输入一个四位数字:abcd
输入不合格!请输入一个四位数字。
请输入一个四位数字:123
输入不合格!请输入一个四位数字。
请输入一个四位数字:12345
输入不合格!请输入一个四位数字。
请输入一个四位数字:5678
0A2B
还有9次机会。
请输入一个四位数字:1234
0A2B
还有8次机会。
请输入一个四位数字:5678
0A2B
还有7次机会。
请输入一个四位数字:9012
0A1B
还有6次机会。
请输入一个四位数字:3456
0A2B
还有5次机会。
请输入一个四位数字:7890
0A3B
还有4次机会。
请输入一个四位数字:6789
0A4B
还有3次机会。
请输入一个四位数字:6584
恭喜你猜对了!
是否继续游戏?(Y/N)n
游戏结束,谢谢参与!
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)