【发布时间】:2018-10-07 17:15:28
【问题描述】:
我是 C 语言的新手,我真的可以在这个问题上寻求帮助:
整数的丰度定义为一个数的完美除数(不包括数本身的因子)除以数本身。例如,8 的丰度为 (1+2+4)/8 = 7/8。编写一个 C 函数,将单个整数作为输入并返回该数字的丰度。
这是我所知道的。我可以编译它,但我一直得到不正确的答案。请帮助并提前感谢
#include <stdio.h>
int main()
{
int number, i, sum, abundancy;
sum==0;
abundancy==0;
printf("Enter an integer:");
scanf("%d", &number);
for(i=1; i<=number; i++)
{
if (i!=number)
{
if (number%i == 0)
{
sum+=i;
{
abundancy=sum/number;
printf("The abundancy is %d", abundancy);
}
}
}
}
return 0;
}
【问题讨论】:
-
sum==0; abundancy==0;不分配 0。阅读有关==运算符的信息,对于分配,您应该使用=。 -
而
abundancy=sum/number;导致int因此7/8是0。 -
谢谢!正如你所说,我已经将 sum==0 和 abundancy==0 更改为 sum=0 和 abundancy =0。但是对于第二部分,我不确定如何纠正它,但我明白你的意思,我对此仍然很陌生,所以我不知道如何纠正它。
标签: c loops if-statement factors