【问题描述】 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,我看错了
|