A代码完善--向量的运算

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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注