Cathy-Chen258 发表于 2020-12-22 10:50:56

c语言水仙花数

#include <stdio.h>
int main()
{
        int n,x,y,z;//x是百位数,y是十位数,z是个位数
        printf("请输出100-999的水仙花数:\n");
        for(n=100;n<1000;n++)
        {
                x=n/100;
                y=(n-100)/10;
                z=n%10;
                if(n==x*x*x+y*y*y+z*z*z)
                {
                        printf("%d",n);
               
                }
       
        }       
        return 0;
}


亲爱的广大网友们帮我看看哪里错了,100-999的水仙花数有4个数,可运行出来只有1个数,紧急帮我看看

谢谢你们啦^_^

昨非 发表于 2020-12-22 10:59:30

#include <stdio.h>
int main()
{
        int n, x, y, z;//x是百位数,y是十位数,z是个位数
        printf("请输出100-999的水仙花数:\n");
        for (n = 100; n < 1000; n++)
        {
                x = n / 100;
                y = (n - x*100) / 10;//这里错了,加个x*100就好了
                z = n % 10;
                if (n == x * x * x + y * y * y + z * z * z)
                {
                        printf("%d\n", n);

                }

        }
        return 0;
}

昨非 发表于 2020-12-22 11:01:11

n-x*100再除以十才能得到十位数

解决了记得给个最佳

Cathy-Chen258 发表于 2020-12-22 11:03:51

昨非 发表于 2020-12-22 10:59


对哄!我一直拿153做检验,谢谢啦{:5_109:}

昨非 发表于 2020-12-22 11:04:30

Cathy-Chen258 发表于 2020-12-22 11:03
对哄!我一直拿153做检验,谢谢啦

小问题

jackz007 发表于 2020-12-22 11:04:54

      这一句错了
                y=(n-100)/10;
      改为
                y = (n % 100) / 10 ;
   或者
                y = (n / 10) % 10 ;

努力向上的小程 发表于 2020-12-22 11:10:21

十位数求错了, y=n/10%10;
页: [1]
查看完整版本: c语言水仙花数