C语言随机生成1到100随机数完整代码
时间: 2024-11-09 12:31:00 浏览: 292
在C语言中,要生成1到100之间的随机数,可以使用`rand()`函数结合一些数学运算来实现。这里有两种常用的方法:
1. 方法一:通过缩放和取整[^1]
```c
#include <stdio.h>
#include <stdlib.h> // 包含rand库
int main() {
srand(time(0)); // 设置随机种子以保证每次运行得到不同的结果
int random_number = (int)(100.0 * (float)rand() / RAND_MAX) + 1;
printf("Generated random number between 1 and 100: %d\n", random_number);
return 0;
}
```
2. 方法二:模运算
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
srand(time(0));
int random_number = rand() % 100 + 1;
printf("Generated random number between 1 and 100: %d\n", random_number);
return 0;
}
```
其中,第一种方法通过将`rand()`的结果乘以100并除以`RAND_MAX`(`RAND_MAX`是`<cstdlib>`库中的常数,表示`rand()`返回的最大值)来确保范围在0到1之间,再加1得到1到100。第二种方法直接对`rand()`的结果做取余100操作,再加上1。
至于猜数游戏的完整代码,你可以参考下面的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h> // 包含time库用于初始化随机数生成器
// 声明变量
int computer_guess, user_guess;
int guess_count = 0;
void generate_random_guess() {
srand(time(0));
computer_guess = (int)(100.0 * (float)rand() / RAND_MAX) + 1;
}
int main() {
printf("Guess the number between 1 and 100!\n");
while (1) {
generate_random_guess();
printf("Computer's guess: %d\n", computer_guess);
printf("Enter your guess (-1 to quit): ");
scanf("%d", &user_guess);
if (user_guess == -1) {
printf("You chose to quit. Game over.\n");
break;
} else if (user_guess == computer_guess) {
printf("Congratulations! You guessed correctly in %d tries.\n", ++guess_count);
break;
} else if (user_guess < computer_guess) {
printf("Too low! Try again.\n");
} else {
printf("Too high! Try again.\n");
}
}
return 0;
}
```
这个游戏会不断循环,直到玩家猜测正确或选择退出。每次循环时,电脑都会生成一个新的随机数作为猜测,然后提示玩家输入他们的猜测。如果猜测正确,游戏结束;如果猜低了或高了,会给出相应提示。
阅读全文