请教一维数组问题
在一组已排序的数组中(由大到小),插入一个数,并保持原数组的排列顺序。main()
{
int i,j,p,q,s,n,a[11]={127,3,6,28,54,68,87,105,162,18};
for(i=0;i<10;i++)
{
p=i;q=a[i];
for(j=i+1;j<10;j++)
if(q<a[j])
{
p=j;q=a[j];
}
if(p!=i)
{
s=a[i];
a[i]=a[p];
a[p]=s;
}
printf("%d ",a[i]);
}
printf("\ninput number:\n");
scanf("%d",&n);
for(i=0;i<10;i++)
if(n>a[i])
{
for(s=9;s>=i;s--)
a[s+1]=a[s];
break;
}
a[i]=n;
for(i=0;i<=10;i++)
printf("%d ",a[i]);
printf("\n");
system("pause");
}
有个地方想不通,这个内嵌循环里的break,感觉上不加也可以,但是运行结果就不对,请高手解惑,谢谢
for(i=0;i<10;i++)
if(n>a[i])
{
for(s=9;s>=i;s--)
a[s+1]=a[s];
break;
}