已有一个排好序的数组,要求输入一个数后,按原来的顺序将其插入数组中。 这里有两段程序,我有几个细节问题想请教。 第一个程序:(传统的课后习题答案) #include<stdio.h> void main() { int a[6]={1,5,21,67,98}; int t1,t2,n,end,i,j; printf("original array is:\n"); for(i=0;i<5;i++) printf("%5d",a[i]); printf("\n"); printf("insert a new number:"); scanf("%d",&n); end=a[4]; if(n>end) /*if(n>end) a[5]=n;可以不要吗*/ a[5]=n; /*直接把下面的写成if语句可以吗?*/ else {for(i=0;i<5;i++) { if(a[i]>n) {t1=a[i]; a[i]=n; for(j=i+1;j<6;j++) { t2=a[j]; a[j]=t1; t1=t2; } break; } } } for(i=0;i<6;i++) printf("%6d",a[i]); } 第二个: #include <stdio.h> void main() { int i,k; int a[6]={1,5,21,67,98}; for(i=0;i<5;i++) printf("%d ",a[i]); printf("\n input a int number:\n"); scanf("%d",&a[5]); for(i=5;i>0;i--) if(a[i]<a[i-1]) { k=a[i-1]; a[i-1]=a[i]; a[i]=k; } for(i=0;i<6;i++) printf("%d ",a[i]); printf("\n"); } 这两个程序从主要思路上哪个更好点?why?~~先谢谢高手