kyl*_*e k 0 c math counter division divider
这是一个计算数字除数的数量的程序,但它实际上比该数字的除数少一个.
#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;
}
Run Code Online (Sandbox Code Playgroud)
数字20有6个除数,但程序说有5个除数.
&& (i != divisor)
Run Code Online (Sandbox Code Playgroud)
意味着20不会被视为除数.如果你想要它被考虑,抛弃那些代码,你将获得整套,{1, 2, 4, 5, 10, 20}.
即使您不希望将该数字视为除数,您仍然可以放弃该代码,而只是使用<而不是<=在for语句中.
和:
total = total++;
Run Code Online (Sandbox Code Playgroud)
完全没必要.它甚至可能是未定义的,我现在只是懒得检查它并不重要,因为没有人长时间写这样的代码:-)
使用:
total = total + 1;
Run Code Online (Sandbox Code Playgroud)
或更好):
total++;
Run Code Online (Sandbox Code Playgroud)