【发布时间】:2011-03-01 05:45:59
【问题描述】:
目前我有这个代码,它可以工作。
#include <stdio.h>
int isFactor(long number1, long number2)
{
int isitFactor = (number2 % number1 == 0)?1:0;
return isitFactor;
}
int isPerfect(int number)
{
int counter;
int sum;
for (counter = 1; counter < number; counter++)
if (isFactor(counter, number))
sum += counter;
return (sum == number);
}
int main()
{
int counter = 1;
for (counter = 1; counter <= 100; counter++)
{
printf("", isPerfect(counter));
if (isPerfect(counter))
printf("%d\n", counter);
}
}
但是,如果我在 main() 中用 printf 去掉不必要的行,它就无法产生任何数字.... 可能的原因?!
【问题讨论】:
-
“可能的原因?”:不启用编译器警告以使用未初始化的变量,或者如果您确实收到了此类警告,则忽略它们。
-
如何在 gcc 上启用这些警告?
标签: c debugging math for-loop numbers