利用函数调用形式,传递一维数组名进行函数调用

来源:互联网 发布:三维动画软件 编辑:程序博客网 时间:2024/06/10 16:05

利用函数调用形式,传递一维数组名进行函数调用

(1)设计冒泡排序函数,在主函数中调用。

(2)设计选择排序函数,在主函数中调用。

(3)设计逆序存放函数,在主函数中调用。

  原先a[0]~a[4]存放2  8  7  5   3,调用逆序存放函数后 a[0]~a[4]变为存放3 5 7 8 2

代码如下:

#include <iostream>using namespace std;/***************效果****************请输入10个整数:*请输入第1个数:(输入后请按回车键)9*请输入第2个数:(输入后请按回车键)5*请输入第3个数:(输入后请按回车键)1*请输入第4个数:(输入后请按回车键)3*请输入第5个数:(输入后请按回车键)7*请输入第6个数:(输入后请按回车键)6*请输入第7个数:(输入后请按回车键)4*请输入第8个数:(输入后请按回车键)2*请输入第9个数:(输入后请按回车键)8*请输入第10个数:(输入后请按回车键)11*9 5 1 3 7 6 4 2 8 11*冒泡排序后从小到大输出是:*1 2 3 4 5 6 7 8 9 11*选择排序后从大到小输出是:*11 9 8 7 6 5 4 3 2 1*倒序后:*1 2 3 4 5 6 7 8 9 11*/#define SIZE 10void input(int *);/*输入数据函数声明*/void output(int *);/*输出数据函数声明*/void sort_m(int *);/*冒泡排序按从小到大顺序排列*/void sort_select(int *);/*选择排序按从大到小顺序排列*/void change(int *);/*数组倒换数据*/int main(){int array[SIZE];input(array);/*输入数据*/output(array);/*输出数据*/sort_m(array);/*冒泡排序从小到大并输出*/sort_select(array);/*选择排序从大到小并输出*/change(array);/*倒序*/return 0;}void input(int * p)/*数据的输入*/{int i;cout << "请输入10个整数:\n";for (i=0; i<SIZE; ++i){do{cout << "请输入第" << i+1 << "个数:(输入后请按回车键)";cin >> *(p+i);if ((*(p+i)>0) && (*(p+i)<10000))break;elsecout << "请输入大于0且小于10000的整数!\n";}while (1);}}void output(int * p)/*数据的输出*/{int i;for (i=0; i<SIZE; ++i)cout << *(p+i) << " ";cout << endl;}void sort_m(int * p)/*冒泡排序按从小到大顺序排列*/{int i, j;int temp;for (i=0; i<SIZE-1; ++i){for (j=i+1; j<SIZE; ++j){if (*(p+i)>*(p+j)){temp = *(p+i);*(p+i) = *(p+j);*(p+j) = temp;}}}cout << "冒泡排序后从小到大输出是:\n";output(p);}void sort_select(int * p)/*选择排序按从大到小顺序排列*/{int i, j;int temp;int k;for (i=0; i<SIZE-1; ++i){k = i;for (j=i+1; j<SIZE; ++j){if (*(p+k)<*(p+j)){k = j;}temp = *(p+k);*(p+k) = *(p+i);*(p+i) = temp;}}cout << "选择排序后从大到小输出是:\n";output(p);}void change(int * p)/*数组倒换数据*/{int i;int temp;for (i=0; i<=((SIZE-1)/2); ++i){temp = *(p+i);*(p+i) = *(p+SIZE-1-i);*(p+SIZE-1-i) = temp;}cout << "倒序后:\n";output(p);}