//有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
#include<stdio.h>
int main()
{
int arr[] = { 23,81,90,14,75 };
int n = sizeof(arr) / sizeof(arr[0]);
int i = 0, j = 0;
int key;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i - 1;
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
for (i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
puts("\n");//输入排序好的数组
int num = 0;
int temp1,temp2;
scanf("%d", &num);
if (num > arr[i - 1])//考虑特殊情况,此时i—1是数组最后一个元素的下标
arr[i] = num;
else {
for (i = 0; i < n; i++)
{
if (arr[i] > num)
{
temp1 = arr[i];
arr[i] = num;//把num插入数组
for (j = i + 1; j < n + 1; j++)//将此时的i后的元素往后移
{
temp2 = arr[j];
arr[j] = temp1;
temp1 = temp2;
}
break;
}
}
}
for (i = 0; i < n+1; i++)
{
printf("%d ", arr[i]);
}
}
C语言在有序数组中插入一个数
最新推荐文章于 2024-08-04 22:51:24 发布