楼主朋友,你的程序有问题的几个地方是:
1、参数传递不对,因为你的函数定义时的形参为 以Point 为基类型的指针,而在函数声明和调用中你用的是Point 类型变量;
2、函数的返回值类型和你最后输出的时候的数据格式说明符不符,因此出现了你所说的错误。
修改如下就没问题了
#include
#include
typedef struct {int x; int y;} Point;
int PointDist(Point *);
int main()
{
Point d[2];
printf("Enter the x value of point1:"); scanf("%d",&d[0].x);
printf("Enter the y value of point1:"); scanf("%d",&d[0].y);
printf("Enter the x value of point2:"); scanf("%d",&d[1].x);
printf("Enter the y value of point2:"); scanf("%d",&d[1].y);
printf("The Euclidean distance between two Points is %d\n",PointDist(d)); //把lf改成 d
system("pause");
return 0;
}
int PointDist(Point dot[2]) //实际上如果不修改上面的lf时可以把此处以及函数声明中
//的int改成double
{
int a,b;
a=(dot[0].x-dot[1].x)+(dot[0].y-dot[1].y);
b=a+1;
return b;
}