在c试图写简化拍摄或不能拍摄功能(关闭)

时间:2018-04-28 11:35:09

标签: c

有什么不对,它只输出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;
}

1 个答案:

答案 0 :(得分:1)

(u - y) ^ 2不符合您的想法:^ is bitwise xor,而非权力。

使用例如相反,(u-y)*(u-y)pow(u-y, 2)。类似于(t-r) ^ 2当然。