/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:字符数组排序
*作者:刘中林
*完成日期:2013年 12月02日
*版本号:v1.0
*对任务及求解方法的描述部分:先定义一个最小值,通过循环,得到真正的最小值,依次从小到大输出
*输入描述:定义的数组
*问题描述: 无
*程序输出: 输出排序后的数组
*问题分析: 无
*算法设计:选择排序法的应用
*/
#include <iostream>
using namespace std;
void select_sort(int arr[], int num);
void output_array(int arr[], int num);
int main()
{
int a[20]= {86,76,62,58,77,85,92,80,96,88,77,67,80,68,88,87,64,59,61,76};
int b[15]= {27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};
select_sort(a,20); //用选择排序法按降序排序a中元素
output_array(a,20); //输出排序后的数组
select_sort(b,15); //用选择排序法按降序排序b中元素
output_array(b,15); //输出排序后的数组
return 0;
}
//下面定义自定义函数
void select_sort(int array[],int n) //形参array是数组名
{
int i,j,k,t;
for(i=0; i<n-1; i++)
{
k=i; //先设第i个就为最小
for(j=i+1; j<n; j++)
if(array[j]<array[k])
k=j; //通过循环,得到k为最小
t=array[k]; //交换a[i]和a[k]
array[k]=array[i];
array[i]=t;
}
return;
}
void output_array(int arr[], int num)
{
int i;
for(i=0; i<num-1; i++)
cout<<arr[i]<<",";
cout<<arr[num-1]<<endl;
return;
}
*样例输出:
心得体会:最后的输出有点迷惑。。不过这样输出第一组数输出结尾没有那个多余的逗号。。怎么回事。。