|
【问题描述】 int m,n,i; printf(“Input m: “); for (i=m;i<=n;i++) int factorsum(int number) for (j=2;j<=number-1;j++){ 程序不会输出结果为什么 |
|
| 10分 |
for (j=2;j<=number-1;j++)这里j 应该从1开始,还有返回d 不是j+1
|
| 10分 |
修改如下:
#include<stdio.h>
int factorsum(int number);
int main(void)
{
int m, n, i;
printf("Input m: ");
scanf("%d", &m);
printf("Input n: ");
scanf("%d", &n);
for (i = m; i <= n; i++)
{
if (factorsum(i) == i)
printf("%5d", i);
}
return 0;
}
int factorsum(int number)
{
//int j, d = 0, t;
int i, d = 0;
for (i = 1; i <= number - 1; i++) {
if (number%i == 0) d = d + i;
}
//t = j + 1;
return d;
}
|
|
#include<stdio.h> int factorsum(int number) |
|
|
在factorsum函数中,1是number的自然因子,不必求。 |
|
| 20分 |
1、你的函数的返回值应该是t=d+j
2、函数内的循环范围可以缩小,只要i<=number/2即可 |
|
应该是t=d+1,我看错了
|
|
