时间限制1s
内存限制128MB
题目描述
设向量X=(x1,x2,…,xn)和Y=(y1,y2…,yn),它们之间的加、减分别定义为:
X+Y=(x1+y1,x2+y2,…,xn+yn)
X-Y=(x1-y1,x2-y2,…,xn-yn)
编程序定义向量类Vector ,重载运算符“+”、“-”,实现向量之间的加、减运算;并重载运算符”<<”作为向量的输出操作。
要求如下:
1.实现Vector类;
2.编写main函数,初始化两个Vector对象的,计算它们之间的加减,并输出结果。
输入
第1行:输入10个int类型的值,初始化第一个Vector对象。
第2行: 输入10个int类型的值,初始化第一个Vector对象。
输出
第1行:2个Vector对象相加后的输出结果。
第2行:2个Vector对象相减后的输出结果。
样例查看模式
正常显示查看格式
输入样例1 <-复制
输出样例1
#include<iostream>
using namespace std;
class Vector{
int n;
int *Vt;
public:
Vector(int t,int *p){
n=t;
Vt =new int [n];
for(int i = 0 ; i < n ; i++ ){
Vt[i]=p[i];
}
}
Vector(const Vector&p){
n=p.n;
Vt =new int [n];
for(int i = 0 ; i < n ; i++ ){
Vt[i]=p.Vt[i];
}
}
Vector operator+(Vector a){
int p[n];
for(int i = 0 ; i < n ; i++ ){
p[i]=Vt[i]+a.Vt[i];
}
Vector fin(n,p);
return fin;
}
Vector operator-(Vector a){
int p[n];
for(int i = 0 ; i < n ; i++ ){
p[i]=Vt[i]-a.Vt[i];
}
Vector fin(n,p);
return fin;
}
friend ostream &operator<<(ostream &output,Vector a){
for(int i = 0 ; i < a.n ; i++ ){
output<<a.Vt[i];
if(i<a.n-1)
output<<" ";
else
output<<endl;
}
return output;
}
};
int main(){
int p1[10],p2[10];
for(int i = 0 ; i < 10 ; i++ ){
cin>>p1[i];
}
for(int i = 0 ; i < 10 ; i++ ){
cin>>p2[i];
}
Vector P1(10,p1);
Vector P2(10,p2);
cout<<P1+P2<<P1-P2;
return 0;
}