解题思路:
1.按照给定的顺序找到可插入的点的下标
2.插入要插入的数输出
注意事项:
1.找到的下标以后的数要后移一位
参考代码:
#include<stdio.h>
int main(void)
{
int i,j; //循环变量
int array[10]; //定义数组,存储排好序的9个数,因为还要插入一个数,所以长度定义为10
int index; //用来记录下标
int num; //要插入的数
printf("请输入一组有序的数:\n");
for(i=0;i<9;i++)//循环录入
{
scanf("%d",&array[i]);
}
printf("请输入你要插入的数字:\n");
scanf("%d",&num);
for(i=0;i<9;i++)//找出可插入的点,即下标
{
//以下找出的是排序为从小到大的插入点,如果你的排序为从大到小就为:num>=array[i]
if(num<=array[i])
{
index=i;
break; //找到下标后就退出循环
}
}
//插入点以后的的数都要往后移一位,在插入点让出一个数的空间
for(j=9;j>index;j--)
{
array[j]=array[j-1];
}
array[i]=num;//按照下标将要插入的数给其赋值
printf("最后结果是:\n");
for(i=0;i<10;i++)
{
printf("%d\n",array[i]);
}
}
0.0分
0 人评分