Я пытаюсь вычислить расстояние между двумя координатами в 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;
}
Проверьте, что вы верно читаете в координатах? –
другое неправильное использование 'scanf': возвращаемое значение не проверено. – chqrlie