目录
解题思路:
以十位数的有序数组举例:为了方便插入数据,可以把数组多定义一位。如果插入的数大于最后一个数,直接将其赋值给arr[10]。如果插入的数位于中间某位置,先找出这个数应插入的位置,这个数前面的数位置不变,后面的数位置依次往后退一位。
编写程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int arr[11] = { 1,5,9,13,26,39,55,60,91,98 };
int i, j, num;
scanf("%d", &num);//输入插入的数num
if (num > arr[9])//如果大于最后一个数,直接放到末尾
arr[10] = num;
else
{
for (i=0;i<10;i++)
{
if (arr[i]>num)//找到i的位置
{
for (j = 10; j > i; j--)//arr[i]后的数往后退一位
arr[j] = arr[j - 1];
arr[i] = num;//把num赋值给arr[i]
break;//结束循环
}
}
}
for (i = 0; i < 11; i++)
printf("%d ", arr[i]);
return 0;
}