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