题目描述
设置一个可以存放1000个整数的数据集合(一维数组),输入一个整数n,输入n个整数存放在集合中。利用冒泡法对集合进行由大到小排序,输入一个整数x,插入排序后的集合中,使得数组依然有序。
输入
第一行一个整数n。
第二行 n个整数,赋值给集合。第三行一个整数x,为插入数据。
输出
第一行 请输入实际元素个数n:提示输入集合元素个数第二行 输出插入新数据之后的集合。
示例如下
输入
5
12 36 54 78 98
36
输出
98 78 54 36 36 12
案例代码
#include <stdio.h>
void bubbleSort(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;
}
}
}
}
int main() {
int n;
printf("请输入实际元素个数n:");
scanf("%d", &n);
int arr[1000];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
bubbleSort(arr, n);
int x;
scanf("%d", &x);
int insertIndex = -1;
for (int i = 0; i < n; i++) {
if (arr[i] <= x) {
insertIndex = i;
break;
}
}
for (int i = n; i > insertIndex; i--) {
arr[i] = arr[i - 1];
}
arr[insertIndex] = x;
// 输出插入新数据之后的集合
for (int i = 0; i <= n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
运行截图
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END