Это программа для подсчета числа делителей для числа, но она дает один меньше делителя, чем на самом деле для этого числа.Получение слишком мало divisors
#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' отклоняет окончательный делитель – simonc
Вы действительно не должны использовать глобальные переменные в этом коде. Вы могли бы отладить эту проблему самостоятельно, добавив '' printf ("% d \ n", divisor); 'statement в тело условия, где у вас' total ++ '. Вы бы видели, какой дивизор не был напечатан (20), и это дало бы вам понять, где искать неприятности. –