一个实现,供参考:
#include <stdio.h>
int bijiao(int * a,int x){
int j;
for(j=0;j<5;j++){
//如果x在数组两个数之间则返回第二个位置
if((a[j]<x&&a[j+1]>=x&&j<4)){
return j+1;
}
//如果所有的数都比x大,则返回第一个位置
if(a[0]>=x){
return 0;
}
//如果所有的数都比x小,则返回最后一个位置
if(a[4]<=x){
return 4;
}
//除上述情况的其他情况,则比较下一个数
if(a[j]<x){
continue;
}
}
}
int houtui(int * a,int c,int x){
if(c<4){
//将当前数存入临时变量,然后用x替换
int t=a[c];
a[c] =x;
c++;
int p;
for(;c<=5;c++){
//记录当前数,然后用上一个数替换,直到替换完所有的数
p=a[c];
a[c]=t;
t=p;
}
}else{
a[5]=x;
}
}
int main(void){
int a[6],x,i,b;
//获取输入
for(i=0;i<5;i++){
scanf("%d",&a[i]);
}
//获取要插入的数
scanf("%d",&x);
//计算要插入的位置
b=bijiao(a,x);
// printf("b=%d\n",b);
//插入x
houtui(a,b,x);
//打印
for(i=0;i<6;i++){
printf("%d ",a[i]);
}
}