m0_52909479
2021-06-23 15:48
采纳率: 100%
浏览 32

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

 

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • CSDN专家-link 2021-06-23 15:58
    已采纳
    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;
    }
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • CSDN专家-link 2021-06-23 15:49

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

    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;
    }
    评论
    解决 无用
    打赏 举报
  • qfl_sdu 2021-06-23 16:11

    第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;
    }
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题