帮我看下这个是写错了还是思路错了

来源:4-9 循环结构之for循环(二)

qq_慕瓜6243838

2020-03-08 10:39

#include <stdio.h>
int main()
{
 int x,y,z,s;
 int s=x*100+y*10+z;
 for(x=1,y=0,z=0;s<1000;s++)
 {
  if(s==x*x*x+y*y*y+z*z*z)
  {
   printf("水仙花数为:%d\n",s);
  }
 }
 return 0;
}

写回答 关注

2回答

  • 慕先生6520913
    2020-04-21 19:05:13

    思路错了,作者要求的是现得到num,在通过num得到各个位上的数。num变了你的x,y,z没跟着变阿

    如果想反着从x,y,z来得到num,并判断num是不是三位数的话,就得好好考虑下递进了,z++到10的时候,z归零,y加1,y==100的时候,z加1.


    最好的方法还是:x=num/100,y=(num-num/100)/10,z=num-x*100-y*10

  • 慕移动8144226
    2020-03-09 21:40:28

    #include <stdio.h>
    int main()
    {
     int x,y,z,s;
     for(x=1,y=0,z=0;s<1000;s++)

     int s=x*100+y*10+z;


     {
      if(s==x*x*x+y*y*y+z*z*z)
      {
       printf("水仙花数为:%d\n",s);
      }
     }
     return 0;
    }

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926896 学习 · 21532 问题

查看课程

相似问题