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