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

18 篇文章 0 订阅

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

(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 10

void 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;
			else
				cout << "请输入大于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);
}


 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值