原题:将整型数组按照从小到大顺序排序,在这个数组中,插入一个新的元素x,使得该数列仍然有序。

#include<stdio.h>
#define N 6
int main()
{
int i,h[N],j,t,x;
for(i=0;i<N;i++)
scanf("%d",&h[i]);
for(j=0;j<5;j++)
for(i=0;i<5-j;i++)
if(h[i]>h[i+1])
{
t=h[i];
h[i]=h[i+1];
h[i+1]=t;
}
for(i=0;i<N;i++)
printf("%d ",h[i]);
printf("\n插入一个数\n");
scanf("%d",&x);
for(i=N-2;i>=0;i--)
if(x<h[i])
h[i+1]=h[i];
else
break;
h[i+1]=x;
for(i=0;i<=N;i++)
printf("%d ",h[i]);
return 0;
}

最后输出的最后一个数不见了
哪里错了?

总共就只能存N个数,你的N固定为6,再插入一个数,肯定会挤掉一个数的啦,而且题目要求的是将整型数组的数按照从小到大排列,要先定义一个数组存入随机的几个数,再用冒泡排序,而不是一个一个输入。