您的位置:首页 > 编程语言 > C语言/C++

C++第14周项目4——数组的排序

2012-11-29 19:08 246 查看
课程首页地址:/article/1353502.html

【项目4 - 数组的排序】编函数,完成冒泡排序。要求不能改变下面的main函数。
  重点体会:(1)排序算法;(2)数组名作形式参数,将能改变作为实际参数的数组的值,实际参数传递给形式参数的是数组的地址值,也是传值;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。
  参考程序段如下:

#include <iostream>
using namespace std;
//两个函数bubble_sort和output_array的声明
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};
	bubble_sort(a,20);   //用冒泡法按降序排序a中元素
	output_array(a,20);   //输出排序后的数组
	bubble_sort(b,15);   //用冒泡法按降序排序b中元素
	output_array(b,15);   //输出排序后的数组
	return 0;
}
//请在下面定义bubble_sort和output_array函数


参考解答:

#include <iostream>
using namespace std;
void bubble_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};
	bubble_sort(a,20);   //用冒泡法按降序排序a中元素
	output_array(a,20);   //输出排序后的数组
	bubble_sort(b,15);   //用冒泡法按降序排序b中元素
	output_array(b,15);   //输出排序后的数组
	return 0;
}
//下面定义自定义函数
void bubble_sort(int arr[], int num)
{
	int i,j,t;
	for(j=0;j<num-1;j++)     //共进行num-1趟比较
		for(i=0;i<num-j-1;i++)   //在每趟中要进行num-j次两两比较
			if (arr[i]<arr[i+1]) //如果前面的数小于后面的数
			{
				t=arr[i]; //交换两个数的位置,使小数下沉
				arr[i]=arr[i+1];
				arr[i+1]=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]<<"\n";
	return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: