c语言,这里为什么只会输出一个1

/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。

img

第9行:for(number = 1; number <= member;number++) 修改为:for(number = 1; number < member; number++)

说明printf语句只被触了一次。可以多加一些打印,同时减少循环次数看一下是哪里的问题。直接调试也可以。


 
#include<stdio.h>
int main(){
    int i,j,k,sum;
    for(i =1;i<=1000;i++){
        sum = 0;
        for(j = 1;j<=i/2;j++){
            if(i%j==0){
                sum= sum+j;
            } 
        }
        if(sum == i){
            printf("%d=1",i);
            for(k = 1;k<=i/2;k++){
                if(i%k==0){
                    if(k==1)continue;
 
                        printf("+%d",k);
                    
                    
                }
            }
            printf("\n");
        }
    }
}

看看这个,或许能给你一点思路