有什么不对,它只输出0
我有2种b,范围35和m,范围17,如果他们可以拍摄它应该输出1但它不是:( 我也没有忘记math.h lib
int main() {
//i got p o k l and kind1 from user
can_hit(p,o,k,l,kind1);
printf("%d", can_hit(p, o, k, l, kind1));
_getch();
}
double distance(int y, int r, int u, int t) {
return sqrt(((u - y) ^ 2) + ((t - r) ^ 2));
}
int can_hit(int x_0, int y_0, int x_1, int y_1, char kind) {
int w = 17;
int e = 35;
int hit = 0;
double n = distance(x_0, y_0, x_1, y_1);
switch (kind) {
case 'm':
if (w >= n) {
hit = 1;
}
break;
case 'b':
if (e >= n) {
hit = 1;
}
break;
}
return hit;
}
答案 0 :(得分:1)
(u - y) ^ 2
不符合您的想法:^
is bitwise xor,而非权力。
使用例如相反,(u-y)*(u-y)
或pow(u-y, 2)
。类似于(t-r) ^ 2
当然。