向量3(静态成员)

2023-07-30 10:33:44 浏览数 (1)

题目描述

为向量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;
	}
}

0 人点赞