猜数游戏,要求随机产生一个五位数,且没有重复数字,猜数时给出大小提示,记录猜数的次数,最后给出评分,C语言代码
时间: 2024-12-23 17:19:04 浏览: 9
猜数游戏是一个常见的编程练习题目,通常用于教学目的。以下是一个简单的C语言代码示例,它使用了`<stdio.h>`、`<stdlib.h>` 和 `<time.h>`库来实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generateRandom(int min, int max) {
srand(time(0));
int num = rand() % (max - min + 1) + min;
return num;
}
void guessNumber(int target) {
int attempts = 0;
printf("欢迎来到猜数游戏!请尝试猜测一个5位无重复数字的数。\n");
do {
char input[6];
scanf("%s", input);
if (strlen(input) != 5 || !isdigit(input[0]) || strcmp(input, input[0] + 1)) { // 检查输入是否合法
printf("错误!请输入一个5位没有重复数字的整数。\n");
continue;
}
attempts++;
int userGuess = atoi(input);
if (userGuess < target) {
printf("你猜的数偏小了!\n");
} else if (userGuess > target) {
printf("你猜的数偏大了!\n");
} else {
printf("恭喜!你猜对了!总共猜了%d次。\n", attempts);
break;
}
} while (1);
}
int main() {
const int fiveDigitNumMin = 10000;
const int fiveDigitNumMax = 99999;
int secretNum = generateRandom(fiveDigitNumMin, fiveDigitNumMax);
guessNumber(secretNum);
// 计算得分并输出(这里简单地设置10次机会作为基础分)
int score = 10 - attempts;
printf("你的得分是:%d\n", score);
return 0;
}
```
在这个代码中,`generateRandom`函数生成一个指定范围内的随机数,而`guessNumber`函数负责用户交互和验证猜测。注意,为了简化评分,本例中直接固定了最高分10分,实际可以根据玩家的表现调整。
阅读全文