A代码完善--向量的运算
时间: 1ms 内存:128M
描述:
注:本题只需要提交填写部分的代码,请按照C++方式提交。
对于二维空间中的向量,实现向量的减法和取负运算。如向量A(x1,y1)和B(x2,y2),
则 A-B 定义为 (x1-x2,y1-y2) , -A 定义为 (-x1,-y1) 。#include <stdio.h>
#include <iostream>
using namespace std;
class Vector
{
private :
int x,y;
public:
void setValue(int x,int y)
{
this->x=x;
this->y=y;
}
void output()
{
cout<<"x="<<x<<",y="<<y<<endl;
}
Vector operator-();
friend Vector operator- (Vector &v1,Vector &v2);
};int main()
{
Vector A,B,C;
int x,y;
cin>>x>>y;
A.setValue(x,y);
cin>>x>>y;
B.setValue(x,y);
C = A - B;
C.output();
C = -C;
C.output();
return 0;
}
/*
请在该部分补充缺少的代码*/
输入:
两个向量
输出:
向量减法和向量取负运算后的结果
示例输入:
10 20 15 25
示例输出:
x=-5,y=-5
x=5,y=5
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("x=%d,y=%d\nx=%d,y=%d\n",a-c,b-d,c-a,d-b);
return 0;
}
参考答案(时间最优[0]):
#include <stdio.h>
#include <iostream>
using namespace std;
class Vector
{
private :
int x,y;
public:
void setValue(int x,int y)
{
this->x=x;
this->y=y;
}
void output()
{
cout<<"x="<<x<<",y="<<y<<endl;
}
Vector operator-();
friend Vector operator- (Vector &v1,Vector &v2);
};
int main()
{
Vector A,B,C;
int x,y;
cin>>x>>y;
A.setValue(x,y);
cin>>x>>y;
B.setValue(x,y);
C = A - B;
C.output();
C = -C;
C.output();
return 0;
}
Vector Vector::operator-()
{
Vector v;
v.x=-x;
v.y=-y;
return v;
}
Vector operator- (Vector &v1,Vector &v2)
{
Vector v;
v.x=v1.x-v2.x;
v.y=v1.y-v2.y;
return v;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。