【发布时间】:2014-01-07 17:05:27
【问题描述】:
我为以下程序编写了代码,但我不明白如何涉及函数。这个问题要求我使用一个返回除数总和的函数。请查看问题和我的代码并尝试帮助我。
问题:
编写一个 C 程序,找到并打印所有除数之和 101 到 110 之间的数字。x 的除数是这些数字 x 除数没有余数(例如,数字 10 的除数是 1, 2, 5, 10 和它们的和 = 1+2+5+10=18, 数字 11 的除数 是 1 和 11,它们的和=1+11=12,以此类推)。 您的程序还应该打印除数之和最大的数字(101 到 110)。
您的程序应至少使用一个名为 div_sum 的函数 接受一个数字并返回其除数之和。
我的代码:
#include <iostream>
#include <stdio.h>
int main()
{
int i=1, x=101, sum, smax=0, xmax=0;
for (x=101; x<=110; x++)
{ sum=0;
for(i=1; i<=x; i++)
{
if(x%i==0)
sum+=i;
}
if(sum>smax)
{
smax=sum;
xmax=x;
}
printf("The sum of factors of %d = %d\n",x,sum);
}
printf("The number that has the maximum sum of divisors is %d with the sum of %d",xmax,smax);
return 0;
}
【问题讨论】:
-
代码看起来不错,除了你没有使用函数
div_sum。
标签: c