gpt4 book ai didi

c - 测试一个数是否能整成 6?

转载 作者:行者123 更新时间:2023-11-30 18:24:17 24 4
gpt4 key购买 nike

我想看看两个输入数字(整数)(包括负数)是否均匀地进入 6(余数为 0)。这是我正在尝试的代码。

if((in1)%6 == 0 && (in2)%6 == 0){
printf("Divisible: both\n");
}
else if((in1)%6 == 0 && (in2)%6 > 0){
printf("Divisible: only %i\n",in1);
}
else if((in1)%6 > 0 && (in2)%6 == 0){
printf("Divisible: only %i\n",in2);
}
else{
printf("Divisible: neither\n");}

这适用于所有正整数,但对于任何负数,打印的代码始终是“可整除:都不是”,任何关于如何显示可被 6 整除且余数为 0 的正数和负数的任何帮助都会非常有帮助

最佳答案

您可以使用!= 0 代替> 0。在 C 中,负数的 % 将给出负结果(或零)。

这是因为自 C99 以来 a/b 被定义为向零截断(在 C90 中它是实现定义的)。并且a % b被定义为a - (a/b) * b

请注意,您实际上根本不需要此测试;如果满足 if 情况,您可以依赖 if...else 的行为,不会进入 else 情况,例如:

if ( in1 % 6 == 0 && in2 % 6 == 0 )
{
// ...
}
else if ( in1 % 6 == 0 )
{
// would not reach here if in2 % 6 == 0
}
else if ( in2 % 6 == 0 )
{
// would not reach here if in1 % 6 == 0
}
else

关于c - 测试一个数是否能整成 6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42477115/

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