在C语言中,如何定义一个函数来生成两个不重复的1到10之间的随机整数,并在主函数中显示它们相乘的数学表达式?
时间: 2024-11-25 15:31:46 浏览: 11
排序算法-基于C语言实现的排序算法之BogoSort实现.zip
在C语言中,为了确保生成的两个随机数不重复,我们需要先生成所有可能的数字对,然后检查它们是否已经存在,直到找到一对满足条件的数。以下是如何定义这样的函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h> // 包含bool类型
// 定义函数来生成不重复的随机数对
bool generate_unique_random_numbers(int* numbers, int min, int max) {
bool found = false;
int first_num, second_num;
do {
first_num = rand() % (max - min + 1) + min;
second_num = rand() % (max - min + 1) + min;
} while (first_num == second_num || !found);
numbers[0] = first_num;
numbers[1] = second_num;
found = true;
return found;
}
// 主函数
int main() {
int unique_random_numbers[2];
if (generate_unique_random_numbers(unique_random_numbers, 1, 10)) {
printf("Random numbers: (%d, %d)\n", unique_random_numbers[0], unique_random_numbers[1]);
printf("Multiplication expression: (%d * %d)\n", unique_random_numbers[0], unique_random_numbers[1]);
} else {
printf("Failed to generate two unique random numbers within the range.\n");
}
return 0;
}
```
在上述代码中,我们使用了一个循环来生成两个随机数,如果它们相等或已经被记录,则继续生成新的随机数,直到找到一对不重复的数。一旦找到,就将这两个数存储在`unique_random_numbers`数组中,并在主函数中打印出来以及它们的乘积。
注意:这个方法在数值较小(例如1到10),且不考虑性能的情况下可以工作,但如果范围很大或者性能要求高,有更好的算法如哈希表可以提高效率。
阅读全文