http://acm.hdu.edu.cn/showproblem.php?pid=2019
边输入,边判断,边插入,在插入后要做个标记,避免重复插入

1 #include<stdio.h> 2 int main() 3 { 4 int x,n,a[10000],i,t,flag; 5 while(scanf("%d%d",&n,&x)&&(n||x)) 6 { 7 flag=0; 8 scanf("%d",&a[0]); 9 if(x<a[0]) 10 { 11 t=x; 12 x=a[0]; 13 a[0]=t; 14 flag=1; 15 } 16 for(i=1;i<=n;i++) 17 { 18 scanf("%d",&a[i]); 19 if(a[i]>=x&&a[i-1]<=x&&flag==0) 20 { 21 a[i+1]=a[i]; 22 a[i]=x; 23 i++; 24 flag=1; 25 } 26 if(i==n-1&&a[i]<=x&&flag==0) 27 { 28 a[i+1]=x; 29 i++; 30 flag=1; 31 } 32 } 33 34 for(i=0;i<=n;i++) 35 if(i==n) 36 printf("%d\n",a[i]); 37 else printf("%d ",a[i]); 38 } 39 return 0; 40 }