用c编程中的函数计算两个坐标之间的距离(x,y,z)

用c编程中的函数计算两个坐标之间的距离(x,y,z),c,function,C,Function,我试图计算3D中两个坐标之间的距离,但是,当符合要求并输入(1,1,1),(1,1,1)时,输出返回2而不是0 代码在这里 #include <stdio.h> #include <math.h> int get_dist(int x_i,int y_i,int z_i,int x_o,int y_o,int z_o){ int coord_dist = 0; coord_dist = sqrt(((x_o - x_i)^2) + ((y_o - y_i)^2) +

我试图计算3D中两个坐标之间的距离,但是,当符合要求并输入(1,1,1),(1,1,1)时,输出返回2而不是0

代码在这里

#include <stdio.h>
#include <math.h>

int get_dist(int x_i,int y_i,int z_i,int x_o,int y_o,int z_o){
int coord_dist = 0;
  coord_dist = sqrt(((x_o - x_i)^2) + ((y_o - y_i)^2) + ((z_o - z_i)^2));

return coord_dist;
}

int main(void){
int x0,y0,z0,x1,y1,z1;
int dist0_1 = 0;
  printf("coord 0:");
  scanf("%d %d %d", &x0, &y0, &z0);
  printf("coord 1:");
  scanf("%d %d %d", &x1, &y1, &z1);

  dist0_1 = get_dist(x0,y0,z0,x1,y1,z1);
  printf("%d\n", dist0_1);

return 0;
}
#包括
#包括
int get_dist(int x_i,int y_i,int z_i,int x_o,int y_o,int z_o){
国际协调区=0;
coord_dist=sqrt((x_-x_i)^2)+(y_-y_i)^2)+(z_-z_i)^2);
返回协调区;
}
内部主(空){
int x0,y0,z0,x1,y1,z1;
int dist0_1=0;
printf(“坐标0:”);
扫描频率(“%d%d%d”、&x0、&y0、&z0);
printf(“坐标1:”);
scanf(“%d%d%d”、&x1、&y1和&z1);
距离0_1=距离(x0,y0,z0,x1,y1,z1);
printf(“%d\n”,dist0\u 1);
返回0;
}

^是XOR,而不是指数。您需要pow()函数。

您是否验证了您读取坐标的正确性?另一个不正确的使用
scanf
:未测试返回值。类似pow(x1-0)的内容?类似pow(x_o-x_I,2)