C语言将一个数插入数组,并按大小输出
时间: 2024-10-11 07:16:05 浏览: 31
在C语言中,我们可以先创建一个动态数组,然后将新数值插入并排序后输出。这里有一个基本的例子,使用快速排序算法对包含新元素的数组进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
// 快速排序函数
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pivot = arr[high]; // 将最后一个元素作为基准
int i = (low - 1); // i用于记录小于基准的元素位置
for (int j = low; j < high; j++) {
// 如果当前元素小于或等于基准
if (arr[j] <= pivot) {
i++; // 移动i的位置
// 交换arr[i]和arr[j]
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
// 将基准元素放置在正确的位置(arr[i+1])
arr[i + 1] = pivot;
// 对基准左边和右边的部分分别递归调用quicksort
quicksort(arr, low, i);
quicksort(arr, i + 2, high);
}
}
int main() {
int size, num;
printf("请输入数组长度: ");
scanf("%d", &size);
// 创建动态数组
int* array = malloc(size * sizeof(int));
printf("请输入%d个元素:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
// 插入新数值
printf("请输入需要插入的数字: ");
scanf("%d", &num);
array[size++] = num; // 动态扩容
// 排序数组
quicksort(array, 0, size - 1);
printf("排序后的数组: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
free(array); // 释放内存
return 0;
}
阅读全文