我对编码相当陌生,而且我正在学习C.我的班级老师给了一个编写程序的任务,它会告诉我们哪些整数是“完美数字”(数字中的因素不包括数字本身加起来的数字,例如,6 = 1 + 2 + 3,所以6是一个完美的数字。)我正在面对我写的代码的一些麻烦,并希望得到一些建议。用C程序找到完美数字
#include <stdio.h>
int main(void) {
int number, counter, sum;
sum = 0;
printf("For the integers from 1 to 1000:\n");
for (number = 1; number <= 1000; number++) {
counter = 1;
while (counter <= number - 1) {
if ((number - 1) % counter == 0) {
sum += counter;
}
}
if (sum == number) {
printf("%d is a perfect number.\n", number);
}
}
return 0;
}
这是我写的代码。我面临的问题是,当我运行程序时,它只打印“对于从1到1000的整数:”,然后停止。该程序甚至不会终止或任何事情。
除了我刚才提到的问题,任何建议或建议的话都非常感谢。
谢谢!
如果输入'while'循环是无限的。 –
'如果((数字-1)%计数器== 0){'这会给你'number-1'的完美数字。用'if((数字)%计数器== 0){'替换它。 – AntonH
在while循环中修改了'number'和'counter',while-condition的唯一两个变体。一旦你进入,你永久。 *某些*必须改变。 – WhozCraig