目录
解题思路:
以十位数的有序数组举例:为了方便插入数据,可以把数组多定义一位。如果插入的数大于最后一个数,直接将其赋值给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;
}
运行结果:

文章介绍了如何在C语言中使用解题思路,通过定义一个额外的数组位置来处理插入新数的问题,当插入值大于数组末尾时直接添加,否则通过for循环找到合适位置并调整后续元素。示例代码展示了完整的插入过程和运行结果。
2100

被折叠的 条评论
为什么被折叠?



