解题思路:
选择排序:每一次都让起始数后面的最大(最小)的数与之交换
参考代码:
#include <iostream>
using namespace std;
void sort(int num[], int len);
void output(const int num[], int len);
int main(void)
{
int i=0, num[10];
do
{
cin >> num[i];
}
while (++i < 10);
sort(num, 10);
output(num, 10);
return 0;
}
void sort(int num[], int len)
{
int i, j, k, temp;
for( i=0; i<len-1; i++ ) //循环len-1次
{
k=i;
for( j=i+1; j<len; j++ )
{
if( num[k]> num[j] )
{
k=j; //k记录着num中最大值元素的下标
}
}
if( k != i )
{
temp=num[i];
num[i]=num[k];
num[k]=temp;
}
}
}
void output(const int num[], int len)
{
for (int i=0; i<len; i++)
{
cout << num[i] << endl;
}
}
0.0分
2 人评分