#define N 6 //一般而言,N是数组长度
int main()
{
int a[N + 1], k, i; //最终输出的是长度+1的数组,所以初始化时长度就要+1
printf("请按从小到大的顺序输入六个数:");
for (i = 0; i <= N - 1; i++)
{
scanf_s("%d", &a[i]);
} //模版
printf("请输入想要插入的数:");
scanf_s("%d",&k);
for (i = N - 1; i >= 0; i--) //从上向下检索
{
if (a[i] < k)
{
a[i + 1] = k;
break;
} //先判断当前元素是否小于待插入数,是的话,让其后面的数组位为插入数
a[i + 1] = a[i]; //要注意这里不是交换而是赋值,也就是说原位置保持不动,下一个位置被赋值,所以就算与上一行判断语句交换也没有任何影响,因为总是在操作下一位
}
for (i = 0; i <= N; i++)
printf("%4d", a[i]);
return 0;
}
作业整理21.在排好序的数中插入一个数
于 2023-11-05 17:02:24 首次发布