C语言猜数字游戏。计算机随机产生一个0--100之间的数,给3次机会,每猜一次通过键盘输入 当机可以给出 小点" "猜中了"三种提示,当出现"猜测中了"时,游戏结束, 如果3次都猜不中,系统给出正确是结果
时间: 2024-06-12 20:06:28 浏览: 141
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int num, guess, chances = 3; // num是随机数,guess是玩家猜的数,chances是剩余机会
srand(time(NULL)); // 初始化随机数种子
num = rand() % 101; // 产生0~100的随机数
printf("猜数字游戏开始!\n");
while (chances > 0) { // 当还有剩余机会时
printf("请输入一个0~100之间的整数,您还有%d次机会:", chances);
scanf("%d", &guess); // 玩家输入猜的数
if (guess == num) { // 猜中了
printf("恭喜您,猜中了!\n");
return 0; // 游戏结束
} else if (guess < num) { // 猜小了
printf("猜小了!\n");
} else { // 猜大了
printf("猜大了!\n");
}
chances--; // 剩余机会减一
}
printf("很遗憾,您没有猜中,正确的数字是%d。\n", num);
return 0;
}
相关问题
模拟文曲星上的猜数游戏,先由计算机随机生成一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB 其中,A前面的数字表示有几位数字不仅数字猜对了,而且位置也正确,B前面的数字表示有几位数字猜对了,但是位置不正确。 最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示“Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示“Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上显示这个正确的数字c语言
以下是实现该猜数字游戏的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL)); // 初始化随机数种子
int answer[4]; // 存储正确答案的数组
int guess[4]; // 存储用户猜测的数字的数组
int A, B; // A和B的计数器
int max_guess; // 最多允许猜测的次数
int i, j, k; // 循环计数器
// 生成不重复的4位数字
for (i = 0; i < 4; i++) {
int num;
do {
num = rand() % 10;
for (j = 0; j < i; j++) {
if (num == answer[j]) {
num = -1; // 如果重复了,就标记为-1
break;
}
}
} while (num == -1);
answer[i] = num;
}
printf("Please input the maximum number of guesses you want to give: ");
scanf("%d", &max_guess);
for (k = 1; k <= max_guess; k++) {
printf("Please input your guess (4 different digits): ");
scanf("%1d%1d%1d%1d", &guess[0], &guess[1], &guess[2], &guess[3]);
// 计算A和B的个数
A = B = 0;
for (i = 0; i < 4; i++) {
if (guess[i] == answer[i]) {
A++;
} else {
for (j = 0; j < 4; j++) {
if (guess[i] == answer[j]) {
B++;
break;
}
}
}
}
// 输出提示信息
printf("%dA%dB\n", A, B);
if (A == 4) {
printf("Congratulations!\n");
return 0;
}
}
printf("Sorry, you haven't guessed the right number!\n");
printf("The answer is: %d%d%d%d\n", answer[0], answer[1], answer[2], answer[3]);
return 0;
}
```
运行程序后,会要求用户输入最多允许猜测的次数,然后进入猜数字游戏界面。用户需要输入一个4位数字,程序会自动判断A和B的数量,并输出相应的提示信息。如果用户猜对了,程序会输出“Congratulations!”并结束;否则,用户需要继续猜,直到猜对或者超过最多允许猜测的次数。如果超过了最多允许猜测的次数,程序会输出正确答案并结束。
用C语言写模拟文曲星上的猜数游戏,先由计算机随机生成 一个各位相异的4位数字,由用户来猜,根据用户猜测的结果给出提示:xAyB 其中,A前面的数宇表示有几位数字不仅数宇猜 对了,而且位置也正确,B前面的数字表示有几位数 宇猜对了,但是位置不正确。 最多允许用户猜的次数由用户从键盘输入。如果猜对,则提示"Congratulations!”;如果在规定次数以内仍然猜不对,则给出提示"Sorry, you haven't guess the right number!”。程序结束之前,在屏幕上品示这个正确的数字。
好的,下面是用 C 语言编写的模拟文曲星上的猜数游戏:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DIGITS 4
void generateRandomNumber(int *number);
void guessNumber(int *number, int maxGuesses);
int main() {
int number[DIGITS];
int maxGuesses;
printf("Welcome to the number guessing game!\n");
printf("You need to guess a %d-digit number with no repeating digits.\n", DIGITS);
printf("How many guesses do you want to have? ");
scanf("%d", &maxGuesses);
generateRandomNumber(number);
guessNumber(number, maxGuesses);
printf("The correct number was ");
for (int i = 0; i < DIGITS; i++) {
printf("%d", number[i]);
}
printf(".\n");
return 0;
}
// 生成随机数
void generateRandomNumber(int *number) {
int used[10] = {0};
srand(time(NULL));
for (int i = 0; i < DIGITS; i++) {
int digit;
do {
digit = rand() % 10;
} while (used[digit]);
used[digit] = 1;
number[i] = digit;
}
}
// 猜数字
void guessNumber(int *number, int maxGuesses) {
int guess[DIGITS];
int guesses = 0;
while (guesses < maxGuesses) {
printf("Guess #%d: ", guesses + 1);
scanf("%1d%1d%1d%1d", &guess[0], &guess[1], &guess[2], &guess[3]);
int correct = 0, misplaced = 0;
int used[DIGITS] = {0};
for (int i = 0; i < DIGITS; i++) {
if (guess[i] == number[i]) {
correct++;
used[i] = 1;
}
}
if (correct == DIGITS) {
printf("Congratulations!\n");
return;
}
for (int i = 0; i < DIGITS; i++) {
if (!used[i]) {
for (int j = 0; j < DIGITS; j++) {
if (i != j && guess[i] == number[j] && !used[j]) {
misplaced++;
used[j] = 1;
break;
}
}
}
}
printf("%dA%dB\n", correct, misplaced);
guesses++;
}
printf("Sorry, you haven't guessed the right number!\n");
}
```
代码解释:
1. 定义 `DIGITS` 常量表示数字的位数。
2. `generateRandomNumber()` 函数用于生成一个各位不同的随机数字,使用一个 `used` 数组记录哪些数字已经使用过了。
3. `guessNumber()` 函数用于进行猜数游戏,使用一个 `guess` 数组记录用户的猜测,使用一个 `used` 数组记录哪些数字已经被匹配过了。
4. 在 `main()` 函数中,首先提示用户游戏规则和要求输入猜测次数,然后生成随机数字并进行游戏,最后显示正确答案。
希望这个程序对你有帮助!
阅读全文