1.思路分享
要插入一个元素的同时保证这个数组还是有序的,那么就需要在找到第一个比插入元素大的数组元素时,从此数组下标开始整体后移一位,然后插入此值。
2.代码展示
int main() {
int arr[20]={1,2,5,7,9,23,25,32,53,55};
int len = 0;
int i = 0;
int flag = 0;
//用while循环找到数组最大下标
while (arr[i++])
{
len++;
}
int x;
printf("请输入要插入的数:");
scanf("%d", &x);
for (i = 0; i<len; i++) {
//遇到第一个大于的数时开始后移
if (arr[i] > x) {
int j;
//从最后一个元素开始后移
for (j = len; len > i; len--) {
arr[len] = arr[len - 1];
}
arr[i] = x;//插入值
flag = 1;//标记更改
break;
}
}
//如果标记更改,输出插入后的数组
if (flag == 1) {
for (i = 0; arr[i]; i++) {
printf("%d ", arr[i]);
}
}//否则提示用户
else
{
printf("该数据不能有序插入");
}
return 0;
}
感谢大家的观看,如果有其他思路的话大家可以分享出来哦。