YTU 2945: 编程:五元向量的运算

来源:互联网 发布:宜昌搜索引擎排名优化 编辑:程序博客网 时间:2024/04/29 11:03

2945: 编程:五元向量的运算

时间限制: 1 Sec  内存限制: 128 MB
提交: 151  解决: 85

题目描述

用习惯了的运算符操作新定义的类对象,这是OO方法给我们带来的便利。下面要为的五元向量(每个向量有5个元素)装备加法、数乘和输入输出的运算功能,请在begin至end部分,写上需要的代码并提交。
#include <iostream>
using namespace std;
const int N=5;   //向量中存储的数据个数,这里确定为5元向量
class MyVector
{
public:
    MyVector(){};    //构造函数
    MyVector(const MyVector &v);  //复制构造函数
    friend istream &operator>>(istream &input, MyVector &d);   //输入向量
    friend ostream &operator<<(ostream &output, const MyVector &d);  //输出向量
    MyVector operator+(const MyVector &d);  //向量相加,当前对象与d对应位置上的元素相加
    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘
private:
    int data[N];      //在data数组中存储数据
};

MyVector::MyVector(const MyVector &d)
{
    for(int i=0; i<N; ++i)
        data[i]=d.data[i];
}
//**********begin*****************


//**********end*****************
int main()
{
    MyVector d1,d2;
    int n;
    cin>>d1;
    cin>>d2;
    cin>>n;
    cout<<"+: "<<d1+d2<<endl;
    cout<<"*: "<<d1*n<<endl;
    return 0;
}

输入

第一个五元向量,五个数之间用空格隔开
第二个五元向量,五个数之间用空格隔开
一个整数

输出

两个五元向量的和: 格式:前后加括号,两数之间用加逗号和一个空格
第一个五元向量与整数的数乘结果,格式同前
(运算规则:和运算为向量对应位置元素相加,数乘运算为各元素分别乘以给定的数。)

样例输入

1 25 41 16 985 67 9 55 1213

样例输出

+: (6, 92, 50, 71, 219)*: (3, 75, 123, 48, 294)

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <iostream>using namespace std;const int N=5;   //向量中存储的数据个数class MyVector{public:    MyVector() {};   //构造函数    MyVector(const MyVector &v);  //复制构造函数    friend istream &operator>>(istream &input, MyVector &d);    friend ostream &operator<<(ostream &output, const MyVector &d);    MyVector operator+(const MyVector &d2);  //向量相加,当前对象与d2对应位置上的元素相加    MyVector operator*(int n);   //向量数乘,当前对象的每个元素与n相乘private:    int data[N];      //在data数组中存储数据};MyVector::MyVector(const MyVector &d){    for(int i=0; i<N; ++i)        data[i]=d.data[i];}istream &operator>>(istream &input, MyVector &d){    for(int i=0; i<5; i++)        input>>d.data[i];    return input;}ostream &operator<<(ostream &output, const MyVector &d){    int i;    output<<"("<<d.data[0]<<", ";    for(i=1; i<4; i++)    {        output<<d.data[i]<<", ";    }    output<<d.data[i]<<")";    return output;}MyVector MyVector::operator+(const MyVector &d){    MyVector a;    for(int i=0; i<5; i++)        a.data[i]=d.data[i]+data[i];    return a;}MyVector MyVector::operator*(int n){    MyVector a;    for(int i=0; i<5; i++)        a.data[i]=n*data[i];    return a;}int main(){    MyVector d1,d2;    int n;    cin>>d1;    cin>>d2;    cin>>n;    cout<<"+: "<<d1+d2<<endl;    cout<<"*: "<<d1*n<<endl;    return 0;}

1 0
原创粉丝点击