用C语言 定义一个关于空间点的结构体,它包含了点的3个坐标值,编写一个函数,计算两个点之间

定义一个关于空间点的结构体,它包含了点的3个坐标值,编写一个函数,计算两个点之间的距离,在主函数中调用。

1、首先我们找到头文件与main函数之间。

2、写上,我们的第一个关键字【struct】。

3、然后我们对该结构体进行命名。

4、在里面,我们便可以编写他的成员。

5、可以编写数组也可以是普通变量。

6、书写完毕后,我们一定要用分号结束。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-15
#include <stdio.h>
#include <math.h>

typedef struct
{
int x;
int y;
int z;
}Point;

double distance3D(Point p1, Point p2)
{
return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y) + (p1.z - p2.z) * (p1.z - p2.z));
}

int main()
{
Point p1, p2;
p1.x = 3; p1.y = 4; p1.z = 5;
p2.x = 0; p2.y = 0; p2.z = 0;
printf("%lf\n", distance3D(p1, p2));
return 0;
}

c++版本:

#include <iostream>
#include <cmath>

using namespace std;

struct Point
{
int x;
int y;
int z;
Point(int xx, int yy, int zz)
{
x = xx;
y = yy;
z = zz;
}
double distance(Point p2)
{
return sqrt((p2.x - x) * (p2.x - x) + (p2.y - y) * (p2.y - y) + (p2.z - z) * (p2.z - z));
}
};

int main()
{
Point p1(3, 4, 5), p2(0, 0, 0);
cout << p1.distance(p2) << endl;
return 0;
}
第2个回答  推荐于2018-04-21
#include <stdio.h>
#include <math.h>

typedef struct situation
{
int x;
int y;
int z;
}STTN;

float Math(STTN A, STTN B);
void main()
{
STTN A, B;
printf("A:(x,y,z)=");
scanf("(%d,%d,%d)", &A.x, &A.y, &A.z);//按格式输入
printf("B:(x,y,z)=");
scanf("(%d,%d,%d)", &B.x, &B.y, &B.z);//按格式输入

printf("|A,B|=%f", Math(A,B));
}

float Math(STTN A, STTN B)
{
float lenth;
lenth=sqrt(((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y)+(A.z-B.z)*(A.z-B.z)));
return lenth;
}本回答被提问者和网友采纳
第3个回答  2011-12-15
#include<stdio.h>
#include<math.h>

struct point
{
int x,y,z;
};
double distance(point a,point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
void main()
{
int i;
point a,b,c;
puts("请依次输入x、y、z的坐标值:");
scanf("%d%d%d",&a.x,&a.y,&a.z);
puts("请依次输入x、y、z的坐标值:");
scanf("%d%d%d",&b.x,&b.y,&b.z);
puts("请依次输入x、y、z的坐标值:");
scanf("%d%d%d",&c.x,&c.y,&c.z);
puts("各点之间的距离为:");
printf("a、b:%6.2f\na、c:%6.2f\nb、c:%6.2f\n",distance(a,b),distance(a,c),distance(b,c));
}
第4个回答  2011-12-15
#include<stdio.h>
#include<math.h>

struct SP
{
int x;
int y;
int z;
};

float Distance(struct SP point1, struct SP point2)
{
float Dis;
Dis=(float)(sqrt(pow((point1.x-point2.x),2)+pow((point1.y-point2.y),2)+pow((point1.z-point2.z),2)));
return Dis;
}

main()
{
struct SP P1;
struct SP P2;
printf("Please input the first point(x y z):");
scanf("%d%d%d",&P1.x,&P1.y,&P1.z);
printf("Please input the second point(x y z):");
scanf("%d%d%d",&P2.x,&P2.y,&P2.z);

printf("The distance of the two point is %f\n",Distance(P1,P2));
getch();
}

用C语言 定义一个关于空间点的结构体,它包含了点的3个坐标值,编写一个...
1、首先我们找到头文件与main函数之间。2、写上,我们的第一个关键字【struct】。3、然后我们对该结构体进行命名。4、在里面,我们便可以编写他的成员。5、可以编写数组也可以是普通变量。6、书写完毕后,我们一定要用分号结束。

比较一个空间点与两群点的重心的距离,用c语言编
PointDiv(g0,m);printf("输入点群2内点的个数:");for(assert(scanf("%d",&n)==1),printf("输入点:\\n"),m=n;n>0;n--,PointAdd(g1,t))assert(scanf("%lf %lf %lf",&t[0],&t[1],&t[2])==3);PointDiv(g1,m);printf("点群1重心:%f,%f,%f\\n点群2重心:%f,%f,%f...

定义一个结构体,该结构体包含:长,宽,高,重量,密度。(C语言)
struct box { float length,width,height,weight,density;};int main(){ struct box b1,*pb=&b1;printf("请输入长度、宽度、高度和重量:");scanf("%f f f f",&((*pb).length),&((*pb).width),&((*pb).height),&((*pb).weight));(*pb).density=(*pb).weight\/((*pb).length...

C语言程序 用结构体编写一个程序,实现输入两个数,求出平均数
include<stdio.h>typedef struct stt{ float num;}STT;int main( ){ STT stt1,stt2; scanf("%f%f",&stt1.num,&stt2.num); printf("平均值:%f\\n",(stt1.num+stt2.num)\/2); return 0;}

用C语言编写:编写一个函数,要求在主函数中输入两个数,输出其中最大值...
C语言代码如下:include<stdio.h> int main(){ int a,b;printf("please enter two number:"); ---两个数字用空格隔开,以回车键结束输入。scanf("%d %d",&a,&b);if(a>b)printf("The max is %d",a);else if(b>a)printf("The max is %d",b);else printf("The two Numbers...

编辑一个c语言程序,定义一个表示分数的结构体类型,并求两个分数相加之...
typedef struct{ \/\/分数数型 unsigned int denominator; \/\/分母 unsigned int numerator; \/\/分子 unsigned int negative; \/\/正负号,0为正号,1为负号 } fraction;fraction fraction_Get(int x1,int x2) { \/\/由分子分母生成分数 fraction x;if(x1<0) { \/\/判断正负和提取分子...

c语言怎么编写一个文本型求和的程序?
1、第一首先打开c语言编辑项目软件。再创建项目。2、然后创建结构体。再设置结构体的两个数据域。3、然后创建一个函数。再创建结构体数组,添加到函数。4、然后定义三个变量i,j,sum。再用i变量进行循环。5、然后用scanf语句进行输入。再用结构体数组进行接收。6、第六然后打开指定文件。再用fwrite...

...编写完成对学生相关信息的要求:1.定义一个结构体类型student,其中包 ...
struct student \/*定义一个结构体用来存放学生学号、三门课成绩、总分及平均成绩*\/ { char stu_id[20]; \/*学生学号;*\/ float score[3]; \/*三门课成绩;*\/ float total; \/*总成绩;*\/ float aver; \/*平均成绩;*\/ };\/*排序用一个函数来实现*\/ void SortScore(student *stu,int n){...

c语言中如何定义一个结构体
结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针,而...

定义一个时间结构体,成员包括时,分,秒编写一个函数用来比较两个时间的...
\/\/c语言写的 \/\/定义一个时间结构体,成员包括时,分,秒编写一个函数用来比较两个时间的大小 include <stdio.h> void main(){ struct ho_mi_se { int hour;int min;int second;};struct ho_mi_se ho_mi_se1;struct ho_mi_se ho_mi_se2;printf("输入第一时间的时(0--23):");scanf("...

相似回答