int main()
{ int a[10]; //既然是输入10个整数,数组开10个即可
int temp;
int i,j;
int k,n;
k=0;
n=10; //需要设置n=10,否则循环结束条件i<n-1就永远不成立了
for ( i=0;i<n;i++ ) scanf("%d",&a[i]); //输入10个数需要逐一输入,格式"%d"不能有空格
//所谓选择法,即每次选择当前范围内最小的数然后放到前面,需要两重循环
for ( i=0;i<n-1;i++ ) //第1重循环指定用i可以访问数组前面n-1个数,顺序访问
{ //然后在当前数之后的所有数中选择最小的记录下来,最后与当前i位置的数进行交换
for ( j=i+1,temp=i;j<n;j++ ) //循环令j可顺序访问当前i之后的数组元素
//循环开始temp假定i处元素最小
if ( a[j]<a[temp] ) temp=j; //如果当前j位置元素比temp记录位置的小,temp记录小的位置
k=a[i]; a[i]=a[temp]; a[temp]=k; //交换当前i位置的数成temp记录的i之后最小位置的数
}
for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n"); //打印数组也需要用循环逐一打印
}
温馨提示:答案为网友推荐,仅供参考