问题:定义一个结构体Point,其成员为x和y,分别对应直角坐标系中一个点的x轴和y轴坐标。声明两个Point类型变量并为其初始化,取值自定。声明一个以指向结构体的指针为参数的函数并在main()函数中调用,用于计算两个点之间的欧氏距离。输出计算结果。
我的代码:
#include<stdio.h>
#include<math.h>
struct Point{
int x[2]={1,3},y[2]={4,5};
};
double fun(struct Point *p,int x1,int x2,int y1,int y2){
double distance;
distance=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2));
return distance;
}
int main( ){
struct Point point;
double dis;
dis=fun(point,x[0],x[1],y[0],y[1]);
printf("%.2f",dis);
return 0;
}
报啥错啊?
你这个函数传递个point指针有啥用啊?既然已经有point指针了,后面四个变量就不需要了啊
#include<stdio.h>
#include<math.h>
struct Point{
int x[2],y[2];
};
double fun(struct Point *p){
double distance;
distance=sqrt((p->x[0] - p->x[1]) * (p->x[0] - p->x[1]) + (p->y[0] - p->y[1]) * (p->y[0] - p->y[1]) );
return distance;
}
int main( ){
struct Point point;
point.x[0] = 1;
point.x[1] = 3;
point.y[0] = 4;
point.y[1] = 5;
double dis;
dis=fun(&point);
printf("%.2f",dis);
return 0;
}
调用fun的时候应该用&point,而且用结构体里面的元素必须用point.x[0]这样的
关键是你那个指针参数也没用上啊