解题思路:1 定义好一个数组,数组里写上有序的数列,定义的数组范围要比有序的多一个
2 先找到要插入的那个数的左右两侧的位置,定义好要插入的数的下标
3 让要输入的那个下标等于右侧那个数
4 之后再进行排列,从有序数列里面最大的那个数开始往后找,找到那个插入的数的下标就停止,因为前面已经是有序的了
#include<stdio.h>
int main()
{
int data[11] = { 1,3,4,6,7,9,12,34,56,78 };//47 要插入34 和 56 之间
int m, index;
printf("请输入一个整数:");
scanf_s("%d", &m);//47
int i, j, k;
for (i = 0; i < 10; i++)
{
if (m > data[i] && m < data[i + 1])//47>data[7] && 47<data[8]
{
index = i + 1;//index = 8;
break;
}
}
for (i = 9; i >= index; i--) //data[9] 78开始,让其从56 开始往后移 data[8]也往后移
{
data[i + 1] = data[i];
}
data[index] = m;//data[8]=47
for (j = 0; j <= 10; j++)
{
printf("%d ",data[j]);//输出就好了。
}
return 0;