gpt4 book ai didi

检查数字中的每个数字是否奇数

转载 作者:太空狗 更新时间:2023-10-29 15:11:09 25 4
gpt4 key购买 nike

我正在编写一个函数来检查数字中的每个数字是否为奇数。我遇到了这种奇怪的行为。为什么第二个函数返回不同(不正确)的结果,尽管它基本相同? (以相反的方式实现)

#include <stdio.h>

int all_odd_1(int n) {
if (n == 0) return 0;
if (n < 0) n = -n;

while (n > 0) {
if (n&1 == 1)
n /= 10;
else
return 0;
}

return 1;
}


int all_odd_2(int n) {
if (n == 0) return 0;
if (n < 0) n = -n;

while (n > 0) {
if (n&1 == 0)
return 0;
else
n /= 10;
}

return 1;
}


int main() {

printf("all_odd_1\n");
printf("%d\n", all_odd_1(-131));
printf("%d\n", all_odd_1(121));
printf("%d\n", all_odd_1(2242));
printf("-----------------\n");
printf("all_odd_2\n");
printf("%d\n", all_odd_2(131));
printf("%d\n", all_odd_2(121));
printf("%d\n", all_odd_2(2242));
return 0;
}

最佳答案

warning: suggest parentheses around comparison in operand of '&'

那么,添加它们怎么样?将 n&1 更改为 (n&1)。始终要求警告。

关于检查数字中的每个数字是否奇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2908198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com