如何在C语言中编写一个函数,生成并返回两个不同的伪随机整数?
时间: 2024-11-25 17:31:44 浏览: 29
在C语言中,我们可以利用标准库提供的`<stdlib.h>`中的`rand()`函数和`srand()`函数来生成伪随机数。首先,需要设置随机数种子,通常使用当前时间作为种子,以确保每次程序运行时得到不同的序列。下面是一个简单的例子,展示了如何编写一个生成并返回两个不同随机整数的函数:
```c
#include <stdio.h>
#include <stdlib.h> // 包含rand() 和 srand()
// 设置随机数种子
srand(time(0));
// 生成随机整数的函数
int* generate_random_pair(int lower_limit, int upper_limit) {
int *result = (int*) malloc(sizeof(int) * 2); // 分配内存空间给两个整数
if(result != NULL) {
result[0] = rand() % (upper_limit - lower_limit + 1) + lower_limit; // 第一个随机数
result[1] = rand() % (upper_limit - lower_limit + 1) + lower_limit; // 第二个随机数,保证不同于第一个
printf("Generated random integers: %d and %d\n", result[0], result[1]);
} else {
printf("Memory allocation failed.\n");
return NULL;
}
return result;
}
// 使用函数
int main() {
int* random_numbers = generate_random_pair(1, 100);
if(random_numbers != NULL) {
free(random_numbers); // 释放内存
}
return 0;
}
```
这个函数接受两个参数,表示生成随机数的范围,然后分别生成两个在这个范围内的随机整数,并将它们存储在一个动态分配的数组中。记得在主函数结束时,要通过`free()`释放之前分配的内存。
阅读全文