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;
}