求C++的完整代码,这里有两道题

 

class Para
{
    private:
        int x1,y1,z1,x2,y2,z2;
    public:
        void SetPt1(int x,int y,int z) {x1=x;y1=y;z1=z;}
        void SetPt2(int x,int y,int z) {x2=x;y2=y;z2=z;}
        double getdis() {return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));}
};

int main()
{
    Para p;
    p.SetPt1(1,1,1);
    p.SetPt2(5,5,5);
    double dis = p.getdis();
    printf("距离为:%lf",dis);
    return 0;
}

 

三维坐标就是有三个维度表示的点呗

void fun(int a[][],int n,int m,int row[])
{
    for(int i=0;i<n;i++)
    {
        row[i] = 0;
        for(int j=0;j<m;j++)
            row[i] += a[i][j];
    }
}

int main()
{
    int a[2][3] = {{1,2,3},{4,5,6}};
    int row[2];
    fun(a,2,3,row);
    printf("两行和分别为:%d,%d",row[0],row[1]);
    return 0;
}

 

第1题的和是所有元素的和?还是两行元素的分别相加,得到一个新的数组?还是每一行相加,得到一个数组?

三种情况都写了,你看情况用吧

#include <iostream>
using namespace std;
//求所有元素的和
int sum(int a[][3],int n)
{
	int i,j;
	int ss = 0;
	int * p;
	for (i = 0;i<n;i++)
	{
		p = a[i];
		for (j=0;j<3;j++,p++)
		{
			ss += *p;
		}
	}
	return ss;
}



//列求和,返回一个数组(第一行的第一个元素+第二行的第一个元素,得到新数组的第一个元素)
int * sum2(int a[][3],int n)
{
	int i,j;
	int *p  = new int[3];
	for (i=0;i<3;i++)
	{
		*(p+i) = a[0][i] + a[1][i];
	}
	return p;
}

//同一行求和,返回一个数组(第一行所有元素求和,作为返回数组的第一个元素)
int* sum3(int a[][3],int n)
{
	int i,j,tmp;
	int* p = new int[n];
	int* q;
	for (i = 0;i<n;i++)
	{
		tmp = 0;
		q = a[i];
		for (j=0;j<3;j++,q++)
		{
			tmp += *q;
		}
		*(p+i) = tmp;
	}
	return p;
}


int main()
{
	int a[2][3] = {{1,2,3},{4,5,6}};
	int ss1 = sum(a,2);
	cout << "所有元素的和等于:" << ss1 <<endl;

	//列求和
	cout << "列元素求和输出数组:" <<endl;
	int* p = sum2(a,2);
	for (int i = 0;i<3;i++)
	{
		cout << *(p+i) << " ";
	}
	cout << endl;
	delete[] p;
	p = 0;


	int* p2 = sum3(a,2);
	cout << "行元素求和输出数组:"<< endl;
	for (int i = 0; i< 2;i++)
	{
		cout <<*(p2+i) << " ";
	}
	cout << endl;
	delete[] p2;
	p2 = 0;
	return 0;
}

题目2:

#include <iostream>
#include <math.h>
using namespace std;

struct MPoint
{
	double x,y,z;
};
class Line3D
{
private:
	MPoint mP1,mP2;
public:
	Line3D(){}
	void setFirstPoint(double x,double y,double z)
	{
		mP1.x = x;
		mP1.y = y;
		mP1.z = z;
	}
	void setSecondPoint(double x,double y,double z)
	{
		mP2.x = x;
		mP2.y = y;
		mP2.z = z;
	}
	double length()
	{
		return sqrt((mP1.x - mP2.x)*(mP1.x - mP2.x) + (mP1.y - mP2.y)*(mP1.y - mP2.y) + (mP1.z - mP2.z)*(mP1.z - mP2.z) );
	}
};

int main()
{
	Line3D line;
	line.setFirstPoint(1,2,3);
	line.setSecondPoint(4,5,6);

	cout << "长度=" << line.length();
	return 0;
}