c语言用数组写一段程序从键盘上随机输入一组整数,按照由大到小的顺序排列,显示排序结果。然后任意输入一个整数并将其插入到序列中。仍然保证序列的降序,并显示插入的结果。
时间: 2023-05-31 13:04:18 浏览: 116
第二题_C语言程序_for循环语句使用_数组从键盘输入_
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 100
// 由大到小排序
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int arr[MAX_SIZE], n, i, num, pos;
srand(time(NULL)); // 用时间做随机种子
printf("请输入数组的长度(不超过 %d):", MAX_SIZE);
scanf("%d", &n);
// 随机生成数组
printf("随机生成的数组为:");
for (i = 0; i < n; i++) {
arr[i] = rand() % 100; // 生成 0~99 的整数
printf("%d ", arr[i]);
}
printf("\n");
// 排序
sort(arr, n);
// 显示排序结果
printf("排序后的数组为:");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 插入操作
printf("请输入要插入的整数:");
scanf("%d", &num);
for (i = 0; i < n; i++) {
if (num >= arr[i]) { // 找到要插入的位置
pos = i;
break;
}
}
for (i = n; i > pos; i--) { // 从后往前挪动
arr[i] = arr[i - 1];
}
arr[pos] = num; // 插入新的元素
// 显示插入结果
printf("插入后的数组为:");
for (i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
阅读全文