for(n=100;n<1000;n++)
{
ge=n%10;
sh=n%100/10;////在这儿吧。
ba=n/100;
sum=ba*ba*ba+sh*sh*sh+ge*ge*ge;
if(sum==n)
printf("%d\t",n);
}

解决方案 »

  1.   

    #include <stdio.h>int yz(int n)
    {
    int sum;
    for(int i=1;i<n;i++)
    {
    if((n%i)==0)
    sum+=i;
    }
    return sum;
    }void main()
    {
    for(int n=1;n<1000;n++)
    {
    if (yz(n)==n)
    {
    printf("%d its factors are",n);//运行这个程序连这句都不会显示,为什么呢?
    }
    }
    }
      

  2.   

    改动几行自己看吧int m = yz(n);
    printf("%d\t%d\n",n,m);
    if (m==n)
    {
      printf("%d its factors are",n);
    }
      

  3.   

    因为当n!=0时,sum=yz(n)永远等于零。所以yz(n)==n永远为假。