输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的数组中,保持原数组的顺序不变。求挑错

#include <stdio.h>
#define N 11
void main()
{
int i,j,a[N],k;
printf("Please input 10 numbers:");
for (i=0; i<N-1; i++)
scanf("%d",&a[i]); /*乱序输入10个整数*/
for(j=0;j<N-1;j++)
for(i=0;i<N-1-j;i++)
if(a[i]<a[i+1])
{
a[10]=a[i];
a[i]=a[i+1];
a[i+1]=a[10];
}
scanf("%d",&k);
for(i=0;i<N-1;i++)
while(a[i]>k&&i<10)
i++;
for(j=10;j>i;j--)
a[j]=a[j-1];
a[i]=k;
for(i=0;i<11;i++)
printf("%d",a[i]);
}

第1个回答  2011-12-13
a[10]=a[i];
a[i]=a[i+1];
a[i+1]=a[10];
改为:
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
-----------------
int i,j,a[N],k;
改为:
int i,j,temp,k;
int a[N];
第2个回答  2011-12-13
for(i=0;i<N-1;i++) //这句多余
while(a[i]>k&&i<10)
i++;本回答被提问者采纳
相似回答