2015-10-10 1 views
-2

Я пытаюсь вычислить расстояние между двумя координатами в 3D, однако, когда выполнено и введено (1,1,1), (1,1,1), выход возвращается 2 вместо 0.Рассчитать расстояние между двумя координатами с функцией в программировании (x, y, z)

Код здесь

#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; 
} 
+0

Проверьте, что вы верно читаете в координатах? –

+0

другое неправильное использование 'scanf': возвращаемое значение не проверено. – chqrlie

ответ

1

^является XOR, а не показатель. Вам нужна функция pow().

+0

что-то вроде pow (x1-0)? –

+0

like pow (x_o - x_I, 2) – Chet

+0

thx приятель !, работает сейчас. –