i=6的话输出 +1+2+3 为什么输不出值
#include<stdio.h>main()
{
int i,sum=0,j,k=0,h,a[20];
for(i=1;i<=500;i++)
for(j=1;j<i;j++)
if(i%j==0)
{a[k++]=j;
sum+=j;}
if(sum==i)
{ for(h=0;h<k;h++)
printf("+%d",a[h]);}
}
#include <stdio.h> int main(void) { int i = 0, sum = 0, j = 0, k = 0, h = 0, a[20] = {0}; for(i = 1; i <= 500; i++) { k = 0; sum = 0; for(j = 1; j < i; j++) { if(i % j == 0) { a[k++] = j; if (k >= 20) { break; } sum += j; } } if(sum == i) { printf("%d=", i); for(h = 0; h < k; h++) { printf("+%d", a[h]); } putchar('\n'); } } return 0; }