满意答案
#include
int main(){
int i,j,p,t;
int a[20];
printf("Please input 20 numbers:\n"); /*输入20个数,并且存放到数组a[i]中*/
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<19;i++){ /*只对前面19个数分析,最后一个数在前面19确定下来后就自动确定了*/
p=i;
for(j=i+1;j<20;j++){ /*每次选取一个i,则只需对其后面的a[i+1]到a[9]这几个数进行排序*/
if(a[p]>a[j]) p=j; /*如果a[p](即a[i])大于a[j],则将j的值赋予p*/
}
if(p!=i){
t=a[p];
a[p]=a[i];
a[i]=t;
} /*此步执行完以后,a[i]为最小值*/
} /*执行完19次循环后,排序完成*/
printf("The scored numbers are as follows:\n");
for(i=0;i<20;i++) /*按从小到大的循序输出20个数*/
printf("%4d",a[i]);
return 0;
}追问: 怎么感觉很复杂?我用的程序是c++
00分享举报