编写程序。先读入10(个整数并把它们按从小到大的次序排列起来, 再读入-一个整数k,并将火插入到该整数数列中,插入后的数列仍然按从小到大的顺序排列。c语言
时间: 2023-06-07 18:09:13 浏览: 113
可以使用C语言中的快速排序算法来实现将读入的10个整数按从小到大排序,然后再遍历整个数组找到插入位置并将k插入进去。以下是C语言代码示例:
#include <stdio.h>
void sort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
if (left < j)
sort(arr, left, j);
if (i < right)
sort(arr, i, right);
}
int main() {
int arr[10];
int i, j, k;
printf("Enter 10 integers:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
sort(arr, 0, 9);
printf("\nSorted array:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\nEnter an integer to insert: ");
scanf("%d", &k);
// Find insertion point
for (i = 0; i < 10; i++) {
if (arr[i] > k)
break;
}
// Shift elements and insert k
for (j = 9; j >= i; j--) {
arr[j+1] = arr[j];
}
arr[i] = k;
printf("\nUpdated array:\n");
for (i = 0; i < 11; i++) {
printf("%d ", arr[i]);
}
return 0;
}
阅读全文