项目3-数组的排序

来源:互联网 发布:淘宝搜索排名 编辑:程序博客网 时间:2024/06/04 19:22

按给定部分程序的要求,用指向数组的指针变量作为形式参数编写函数,完成排序。重点体会:(1)排序算法,可以是冒泡,也可以是选择;(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变;(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。

#include<iostream>using namespace std;void sort(int *p, int num);  //不要对自定义函数的声明有任何改动void output(int*, int);int main( )   //不要对main函数有任何改动{    int a[20]= {86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};    int b[15]= {27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};    sort(a,20);   //用冒泡法按降序排序a中元素    output(a,20);   //输出排序后的数组    sort(b,15);   //用冒泡法按降序排序b中元素    output(b,15);   //输出排序后的数组    return 0;}//下面定义自定义函数void sort(int *p, int num){//int s;//for(int i=0;i<num-1;i++)//for(int j=0;j<num-i-1;j++)//if(*(p+j)<*(p+j+1))//{//s=*(p+j);//*(p+j)=*(p+j+1);//*(p+j+1)=s;//}int s;for(int i=0;i<num-1;i++)for(int j=i+1;j<num;j++)if(*(p+i)<*(p+j)){    s=*(p+i);        *(p+i)=*(p+j);*(p+j)=s;}}void output(int*p, int m){for(int i=0;i<m;i++)cout<<*(p+i)<<",";cout<<endl;}


0 0
原创粉丝点击