c语言:用函数求两点间距离【求大神帮忙看看哪里错了。。

2025-01-21 05:56:09
推荐回答(4个)
回答1:

额,貌似你就没什么对的地方。首先,在main函数中,int xyz(int l),这个不能这样写啊。声明也不是在主函数中声明啊。第二,这个int l?你确定是int型的?x1,x2,y1,y2都可以是int 型的,唯独l不可以,你查下sqrt()的返回值,是float型的。第三,x1,x2,y1,y2在哪里赋值了?没地方赋值怎么计算啊,你的xyz的原型应该写成 float(int x1,int x2,int y1,int y2),这样才能传值。第四,int i是形参,不能做返回值的,这涉及到内存模型问题

回答2:

你没有加头文件,在程序中使用数学函数时,应该在源文件中使用#include。还有sqrt()函数的返回结果和参数应该是double型的。
#include
#include
double xyz(double x1,y1,x2,y2)
{ double l,h;
h=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
l=sqrt(h);
return l;
}
int main()
{
double m,n1,n2,n3,n4;
printf("请输入四个实型数:");
scanf("%f %f %f %f",&n1,&n2,&n3,&n4);
m=xyz(n1,n2,n3,n4);
printf("%f",m);
system("pause");
return 0;
}

回答3:

你的代码真叫人哭笑不得!

  1. 把scanf("%d %d %d %d",n1,n1,n2,n2);改成scanf("%d%d%d%d",&n1,&n2,&n3,&n4);,输入时各数之间用空格或回车隔开。

  2. 把函数定义int xyz(int l)改成float xyz(int x1,int x2,int y1,int y2),把其中的float x1,y1,x2,y2;改成float l;。

  3. 把main中的int xyz(int l);改成float xyz(int,int,int,int);,再把int m,n1,n2,n3,n4;中的m删除,另加一行float m;。

  4. 把m=xyz(l);改成m=xyz(n1,n2,n3,n4);。

  5. 把printf("%d",m);改成printf("%f\n",m);。

这样大概就可以了……

回答4:

scanf("%d %d %d %d",n1,n1,n2,n2)输入没有取址符