帮我用C语言写一个生成1~5的5个随机数,并将其按生成顺序排列,并且无重复
时间: 2024-05-14 15:17:06 浏览: 64
用C#生成不重复的随机数的代码
好的,以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int nums[5] = {0}; // 存储随机数的数组
int temp, i, j;
srand((unsigned)time(NULL)); // 设置随机数种子
// 生成随机数
for (i = 0; i < 5; ) {
temp = rand() % 5 + 1; // 生成1~5的随机数
// 判断是否已经生成过该数
for (j = 0; j < i; j++) {
if (temp == nums[j]) {
break;
}
}
if (j == i) { // 如果该数没有重复,则存入数组中
nums[i] = temp;
i++;
}
}
// 排序
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 5; j++) {
if (nums[i] > nums[j]) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
// 输出结果
printf("随机数为:");
for (i = 0; i < 5; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
代码思路说明:
1. 定义一个长度为5的数组 `nums`,用于存储随机数。
2. 利用 `srand((unsigned)time(NULL))` 设置随机数种子,保证每次生成的随机数都不同。
3. 使用 `for` 循环生成随机数,直到生成了5个不重复的随机数为止。
4. 为了方便排序,使用冒泡排序将随机数按从小到大的顺序排列。
5. 输出排序后的结果。
阅读全文