我这样写报错了,应该怎么写啊

问题:定义一个结构体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]这样的
关键是你那个指针参数也没用上啊

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632