在C语言中,如果你有一个已经排好序的数组,并且想要插入一个新的数到数组中,同时保持数组的有序性,你需要首先确定新数的插入位置,然后将该位置及其后面的所有元素向后移动一位,最后将新数插入到正确的位置。
代码如下:
#include <stdio.h>  
#include <stdlib.h> 
#define MAX_SIZE 100 // 定义数组的最大大小 // 函数用于插入新数到已排序的数组中  
void insertSorted(int arr[], int *size, int num) {  // 如果数组已满,不能插入  if (*size == MAX_SIZE) {  printf("Array is full, cannot insert.\n");  return;  }  int i;  // 找到新数应该插入的位置  for (i = *size - 1; i >= 0 && arr[i] > num; i--) {  arr[i + 1] = arr[i]; // 将大于新数的元素向后移动一位  }  arr[i + 1] = num; // 插入新数  (*size)++; // 数组大小增加1  
}  int main() {  int arr[MAX_SIZE] = {1, 3, 5, 7, 9}; // 示例已排序数组  int size = 5; // 数组当前的大小  int num; // 要插入的数  // 获取用户要插入的数  printf("Enter a number to insert: ");  scanf("%d", &num);  // 调用函数插入数到数组中  insertSorted(arr, &size, num);  // 打印插入后的数组  printf("Array after insertion: ");  for (int i = 0; i < size; i++) {  printf("%d ", arr[i]);  }  printf("\n");  return 0;  
}