在数组中插入一数字,然后从大到小输出。但是结果总是不对,求大神指导
程序代码:
#include<stdio.h>
int main()
{
int i,j,n,s;
static int a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<11;i++)
{
for(j=0;j<11-i;j++)
{
if(a[j]<a[j+1])
{
int max=a[j+1];
a[j+1]=a[j];
a[j]=max;
}
}
}
for(i=0;i<11;i++)
printf("%-5d",a[i]);//将数组由大到小排列输出
printf("\nenter a number:");
scanf("%d",&n);//输入一个整数与排列后的数组进行比较,这以上都是对的,但是以下就有错误了,我不知道错哪了,怎么改?输入的数字总是放不对位置。
for(i=0;i<10;i++)
{
if(n>a[i])
{
for(s=11;s>=i;s--)
{
a[s]=a[s-1];
break;
}
}
}
a[i]=n;
for(i=0;i<12;i++)
printf("%-5d",a[i]);
return 0;
}










