gpt4 book ai didi

c - 得到一个太少的除数

转载 作者:太空宇宙 更新时间:2023-11-04 05:41:19 25 4
gpt4 key购买 nike

这是一个计算一个数的除数的程序,但它给出的除数比该数字的实际除数少一个。

#include <stdio.h>

int i = 20;
int divisor;
int total;

int main()
{
for (divisor = 1; divisor <= i; divisor++)
{
if ((i % divisor == 0) && (i != divisor))
{
total = total++;
}
}
printf("%d %d\n", i, total);
return 0;
}

数字 20 有 6 个除数,但程序说有 5 个除数。

最佳答案

&& (i != divisor)

表示20不会被视为除数。如果你想让它被考虑,放弃那部分代码,你会得到整套,{1, 2, 4, 5, 10, 20} .

即使您希望将数字计为除数,您仍然可以放弃该代码而只使用 <而不是 <=for声明。

和:

total = total++;

完全没有必要。它甚至可能是未定义的,我现在懒得去检查,这并不重要,因为没有人长期编写这样的代码:-)

使用其中之一:

total = total + 1;

或(更好):

total++;

关于c - 得到一个太少的除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423534/

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