题目:将一个数插入到升序数组中,使插入后的数组仍然为升序数组
#include <stdio.h>
#define MAX_SIZE 10
void insertIntoSortedArray(int arr[], int *n, int x) {
if (*n == MAX_SIZE) {
printf("当前数组已满,不能再插入\n");
return;
}
int i;
for (i = *n - 1; (i >= 0 && arr[i] > x); i--) {
arr[i + 1] = arr[i];
}
arr[i + 1] = x;
(*n)++;
}
int main() {
int arr[MAX_SIZE] = {1, 3, 5, 7};
int n = 4;
int x = 4;
printf("插入前的数组值:" );
for(int i = 0; i < 4; i++){
printf("% d", arr[i]);
}
printf("\n");
insertIntoSortedArray(arr, &n, x);
printf("插入后的数组值:" );
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}