第6章 函数 第18题

题目:

编写一个函数模板,判断两个一维数组是否相同。模板参数是数组的类型。


代码:

#include <iostream>
using namespace std;

template <class T>
bool function(T a[], T b[], int number);

int main()
{
	cout << "判断两个一维数组是否相同" << endl << endl;
	
	int category;
	cout << "1.int" << endl << "2.double" << endl << "3.char" << endl << "请输入你要判断的数组的类型:";
	cin >> category;

	if (category == 1)
	{
		int number;
		cout << endl << "请输入这两个数组的元素个数:";
		cin >> number;

		int *a = new int[number];
		int *b = new int[number];

		cout << "请依次输入第一个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";
		
		for (int i = 0; i < number; ++i) cin >> a[i];

		cout << "请依次输入第二个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";

		for (int i = 0; i < number; ++i) cin >> b[i];



		bool judge = function(a, b, number);
		cout << endl << "这两个一维数组";
		if (judge == false) cout << "不";
		cout << "相同" << endl << endl;
	}

	if (category == 2)
	{
		int number;
		cout << endl << "请输入这两个数组的元素个数:";
		cin >> number;

		double *a = new double[number];
		double *b = new double[number];

		cout << "请依次输入第一个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";

		for (int i = 0; i < number; ++i) cin >> a[i];

		cout << "请依次输入第二个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";

		for (int i = 0; i < number; ++i) cin >> b[i];



		bool judge = function(a, b, number);
		cout << endl << "这两个一维数组";
		if (judge == false) cout << "不";
		cout << "相同" << endl << endl;
	}

	if (category == 3)
	{
		int number;
		cout << endl << "请输入这两个数组的元素个数:";
		cin >> number;

		char *a = new char[number];
		char *b = new char[number];

		cout << "请依次输入第一个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";

		for (int i = 0; i < number; ++i) cin >> a[i];

		cout << "请依次输入第二个数组的元素:(彼此之间用空格隔开,按回车键结束输入)";

		for (int i = 0; i < number; ++i) cin >> b[i];



		bool judge = function(a, b, number);
		cout << endl << "这两个一维数组";
		if (judge == false) cout << "不";
		cout << "相同" << endl << endl;
	}

	system("pause");
	return 0;
}

template <class T>
bool function(T a[], T b[], int number)
{
	for (int i = 0; i < number; ++i)
	{
		if (a[i] != b[i]) return false;
	}

	return true;
}

猜你喜欢

转载自blog.csdn.net/weixin_41013202/article/details/79774612