这个程序与你的编法也差不多.算法复杂度也是一样.13楼也指出了你的错误.但是有些细节还没有完全实现.下面这个程序能实现你的要求.
#include "stdio.h"
void main()
{
int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=0;
s=0;
for(i=1;i<j;i++)
{
if((j%i)==0)
{
n++;
s=s+i;
k[n]=i;
}
}
if(i==s)
{
printf("%d is a wanshu",j);
for(i=1;i<n;i++)
printf("%d,",k[i]);
printf("\n");
}
}
}