在数组中插入一数字,然后从大到小输出。但是结果总是不对,求大神指导
程序代码:
#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; }