Homework 1165 - C++作业第十章(主讲老师徐红云)Problem C: C++第十章习题3

Problem C: C++第十章习题3

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 314   Solved: 186
[ Submit][ Status][ Web Board]

Description

类模板T_Vector实现向量运算的加减运算,在main函数中使用该类模板建立整型向量对象进行向量的加减运算。

Input

输入为若干组数据,每组数据用4行表示。第1行为1个字符(+、-中的一个),表示所要做的向量运算,第2行为一个小于100整数,表示向量的长度,第3行和第4行均为n个整数,各整数间用空格分隔,第3行和第4行表示两个向量。

Output

输出为若干组数据,每组数据用1行表示。输出长度为n的向量,向量的各分量之间用空格分隔(注意最后一个分量后不接空格)

Sample Input

+31 2 34 5 6-41 2 3 45 6 7 8

Sample Output

5 7 9-4 -4 -4 -4



#include<iostream>
using namespace std;
template<typename T>
class vector
{
protected:
	T a[1005];
	T d[1005];
	int n;
public:
	vector(T c[],T h[],int x):n(x)
	{
		int i;
		for(i=0;i<n;i++)
	    {	
			a[i]=c[i];
		    d[i]=h[i];
		}
	}
	void add();
	void jian();
};
template<typename T>
void vector<T>::add()
{
	int i;
   for(i=0;i<n;i++)
	   a[i]+=d[i];
   cout<<a[0];
    for(i=1;i<n;i++)
		cout<<" "<<a[i];
	cout<<endl;
}
template<typename T>
void vector<T>::jian()
{
	int i;
   for(i=0;i<n;i++)
	   a[i]-=d[i];
   cout<<a[0];
    for(i=1;i<n;i++)
		cout<<" "<<a[i];
	cout<<endl;
}
int main()
{
	int i,j,m,n;
	int a[1005],b[1005];
	char k;
	while(cin>>k)
	{
		switch(k)
		{
		case '+':
			{cin>>m;
			for(i=0;i<m;i++)
				cin>>a[i];
			for(i=0;i<m;i++)
				cin>>b[i];
			vector<int> p(a,b,m);
			p.add();
			break;
			}
		case '-':
			{
				cin>>m;
			for(i=0;i<m;i++)
				cin>>a[i];
			for(i=0;i<m;i++)
				cin>>b[i];
			vector<int> p(a,b,m);
			p.jian();
			break;
			}
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值