题目描述
为向量1题目实现的CVector类添加私有静态成员sum,在初始化对象的同时,统计所有对象的n维向量和sum。
主函数生成多个对象,测试向量和。
可根据需要自行添加需要的静态成员函数,添加非静态成员函数不得分。
输入
测试次数t
每组测试数据格式如下:
输入m,表示n维向量的数目
后跟m行,每行格式:向量维数n n维向量值
输出
对每组测试数据的m个向量,输出所有向量的分量和sum
输入样例1
2 2 5 1 2 3 4 5 3 4 5 6 3 2 1 2 3 10 20 30 2 11 22
输出样例1
1 2 3 4 5 4 5 6 30 1 2 10 20 30 11 22 96
AC代码
代码语言:javascript复制#include<iostream>
using namespace std;
class CVector
{
int * data;
int n;
static int sum;
public:
CVector(){
data=new int[5];
for(int i=0;i<5;i )
{
data[i]=i;
sum =i;
}
n=5;
}
CVector(int n1,int *a){
n=n1;
data=new int[n1];
for(int i=0;i<n1;i )
{
data[i]=a[i];
sum =a[i];
}
}
void display(){
int i;
for(i=0;i<n-1;i )
cout<<data[i]<<' ';
cout<<data[i]<<endl;
}
static int getsum(){return sum;}
static void setsum(){sum=0;}
~CVector(){
if(data)
delete[] data;
data=NULL;
}
};
int CVector::sum=0;
int main() {
int n,i,t,m;
cin>>t;
while(t--)
{
CVector::setsum();
cin>>m;
while(m--)
{
cin>>n;
int *p=new int [n];
for(i=0;i<n;i )
cin>>p[i];
CVector b(n,p);
b.display();
if(p)
delete[] p;
p=NULL;
}
cout<<CVector::getsum()<<endl;
}
}