以下代码成立条件:
1.数组有效元素必须比数组长度少一位,不然会将其覆盖一位元素
2.并没有考虑过无法插入的情况,如需此功能,需自行添加。
#include<stdio.h>
#include<stdlib.h>
#define N 11 //数组长度
int main(void)
{
int i,j;
int val=7; //需要插入的数据,可改为手动输入
int arr[N]={1,4,6,9,13,16,19,28,40,100};
for(i=0; i<N; i++) //遍历数组
{
/*判断可以插入元素的位置*/
if(val > arr[i] && val < arr[i+1])
{
/*将数组往后挪一位,给需要插入元素腾出位置出来*/
for(j=N; j>i; j--)
{
arr[j]=arr[j-1];
}
arr[i+1]=val; /*将元素放入腾出的空位置中*/
break; //退出循环
}
}
/*输出*/
for(i=0; i<N; i++)
{
printf("%d ",arr[i]);
}
return 0;
}
如有错误,欢迎指出。