c语言 利用随机函数rand()生成10个在区间【1,20】内的各不相同的整数,分别用冒泡排序与选择排序对数组排序后输出。
时间: 2023-06-01 08:05:25 浏览: 108
好的,这个问题属于计算机科学问题,我可以回答。下面是代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
void selection_sort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
int min_index = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
int main() {
srand(time(NULL));
int arr[10];
for (int i = 0; i < 10; i++) {
arr[i] = rand() % 20 + 1;
for (int j = 0; j < i; j++) {
if (arr[j] == arr[i]) {
i--;
break;
}
}
}
printf("Original array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, 10);
printf("Bubble sorted array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
selection_sort(arr, 10);
printf("Selection sorted array: ");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
你可以将这些代码复制并粘贴到C语言编译器中运行来查看结果。
阅读全文