我刚开始介绍计算机编程课程,我只知道2周的编程。 我一直得到“'sqrt'的冲突类型”,所以我做了一个原型,我仍然收到消息。我已经尝试了一切。
#include<stdio.h>
#include<math.h>
float distance(float a, float b, float c, float d);
int main()
{
int a,b,c,d,D;
printf("Please enter the first x coordinate. x1= ");
scanf("%f",&a);
printf("Please enter the first x coordinate. y1= ");
scanf("%f",&b);
printf("Please enter the first x coordinate. x2= ");
scanf("%f",&c);
printf("Please enter the first x coordinate. y2= ");
scanf("%f",&d);
D = distance(a,b,c,d);
printf("Distance = %.4f",D);
return 0;
}
float distance(float x1, float x2, float y1, float y2)
{
float d, D, x, y, X, Y;
x = x1 - x2;
y = y1 - y2;
X = x*x;
Y = y*y;
d = X + Y;
float sqrt (float d);
}
答案 0 :(得分:1)
这是一个函数声明
float sqrt (float d);
如果你想返回你需要的函数调用的结果
return sqrt(d);
另外,冲突类型错误是由sqrt
函数原型
double sqrt(double x);
有一个float
等价物
float sqrtf(float x);
所以也许你的函数应该返回
return sqrtf(d);
注意:我没有看到将此计算拆分的任何好处,您可以
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));