C语言,已有一个排好序(从大到小)的整数数组: int a[10]={ 100, 90, 80, 70, 60, 50 }; 若继续输入一个整数,请按原先的从大到小顺序规律插入到合适位置。 完成操作后,请按序输出操作后的所有整数。
时间: 2024-10-09 21:01:26 浏览: 27
在已排好序的数组里插一个数,按顺序输出(csdn)————程序.pdf
在C语言中,为了将一个新数值按原有序列插入,我们可以遍历数组找到合适的位置。这里是一个简单的示例程序来演示这个过程:
```c
#include <stdio.h>
void insert(int arr[], int n, int num) {
if (n == 0 || arr[n - 1] < num) {
// 如果数组为空或者最后一个元素小于新数值,直接加到最后
arr[n] = num;
return;
}
// 从后向前遍历,找到第一个大于等于新数值的元素
for (int i = n - 1; i >= 0 && arr[i] > num; i--) {
arr[i + 1] = arr[i];
}
// 将新数值插入正确位置
arr[i + 1] = num;
}
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int a[10] = {100, 90, 80, 70, 60, 50};
int n = sizeof(a) / sizeof(a[0]);
int input;
printf("请输入一个整数: ");
scanf("%d", &input);
insert(a, n, input);
printArray(a, n);
return 0;
}
```
当你运行这个程序并输入一个新的数字,它会根据原有序列插入,并保持排序。
阅读全文