C语言猜数字游戏。计算机随机产生一个0--100之间的数,给3次机会,每猜一次通过键盘输入 当机可以给出 小点" "猜中了"三种提示,当出现"猜测中了"时,游戏结束, 如果3次都猜不中,系统给出正确是结果
时间: 2024-06-12 13:06:28 浏览: 150
#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;
}
相关问题
C语言编程。编写猜数游戏程序,计算机自动随机生成一个100以内的整数,客户从键盘输入一个整数,系统提示猜大了、猜小了还是猜对了,重复输入直到猜对为止
在C语言中,我们可以创建一个简单的猜数游戏程序,通过`rand()`和`srand()`函数生成随机数,然后让用户通过循环不断猜测直到猜对。以下是一个简单的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 引入time头文件以获取当前时间作为随机数种子
// 游戏主函数
int guessTheNumber() {
srand(time(0)); // 设置随机数种子,保证每次运行程序时都会得到不同的随机数
int secretNum = rand() % 101 + 1; // 生成1到100之间的随机数
while (true) {
int userGuess;
printf("I'm thinking of a number between 1 and 100. Guess the number:\n");
scanf("%d", &userGuess);
if (userGuess > secretNum) {
printf("Too high! Guess again.\n");
} else if (userGuess < secretNum) {
printf("Too low! Guess again.\n");
} else {
printf("Congratulations! You guessed the number %d correctly!\n", secretNum);
break;
}
}
return 0;
}
int main() {
guessTheNumber(); // 调用游戏主函数
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!”并结束;否则,用户需要继续猜,直到猜对或者超过最多允许猜测的次数。如果超过了最多允许猜测的次数,程序会输出正确答案并结束。
阅读全文