向量3(静态成员)

目录

题目描述

AC代码


题目描述

为向量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代码

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

猜你喜欢

转载自blog.csdn.net/weixin_62264287/article/details/125394225
今日推荐