继续前进1234 发表于 2019-10-11 09:08:16

c语言 用嵌套循环写水仙花数

本帖最后由 继续前进1234 于 2019-10-11 09:09 编辑

不知道这样写有什么问题,结果是错的
#include <stdio.h>
int main ( )
{
        int a, b, c, d;
        d= a*100+b*10+c;
        for (a = 1;a < 10;a++)
        {
                for (b=0;b<10;b++)
                {
                        for(c=0;c<10;c++)
                        {
                                if(d==a*a*a+b*b*b+c*c*c)
                                printf ("%d\t",d);
                        }
                }
                       
        }
               
        return 0;
}

wp231957 发表于 2019-10-11 09:16:40

d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的

继续前进1234 发表于 2019-10-11 09:23:22

wp231957 发表于 2019-10-11 09:16
d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的

没理解,,,

继续前进1234 发表于 2019-10-11 09:27:08

wp231957 发表于 2019-10-11 09:16
d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的

那应该把d= a*100+b*10+c;放在什么位置啊

wp231957 发表于 2019-10-11 09:44:30

继续前进1234 发表于 2019-10-11 09:27
那应该把d= a*100+b*10+c;放在什么位置啊

肯定得放在最内循环啊
我现在都没有c编译器了没法帮你测试了

继续前进1234 发表于 2019-10-11 09:47:11

wp231957 发表于 2019-10-11 09:44
肯定得放在最内循环啊
我现在都没有c编译器了没法帮你测试了

那我现在放的位置不属于最内循环吗?{:5_96:}

风不会说话 发表于 2019-10-11 09:51:44

d= a*100+b*10+c;去掉
if(d==a*a*a+b*b*b+c*c*c)改成 if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)试试



继续前进1234 发表于 2019-10-11 09:53:15

风不会说话 发表于 2019-10-11 09:51
d= a*100+b*10+c;去掉
if(d==a*a*a+b*b*b+c*c*c)改成 if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)试试

还是一样

wp231957 发表于 2019-10-11 09:54:22

继续前进1234 发表于 2019-10-11 09:47
那我现在放的位置不属于最内循环吗?

      int a, b, c, d;
      d= a*100+b*10+c;   //这不是最外循环之外吗
      for (a = 1;a < 10;a++)

wp231957 发表于 2019-10-11 09:58:29

继续前进1234 发表于 2019-10-11 09:53
还是一样

#include <stdio.h>


int main ( )
{
      int a, b, c, d;
      
      for (a = 1;a < 10;a++)
      {
                for (b=0;b<10;b++)
                {
                        for(c=0;c<10;c++)
                        {
                               d= a*100+b*10+c;
                              if(d==a*a*a+b*b*b+c*c*c)
                              printf ("%d\t",d);
                        }
                }
                        
      }
               
      return 0;
}



/*
e:\>cl ct1.c
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

ct1.c
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.All rights reserved.

/out:ct1.exe
ct1.obj

e:\>ct1
153   370   371   407
*/

风不会说话 发表于 2019-10-11 10:16:01

继续前进1234 发表于 2019-10-11 09:53
还是一样

下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行

继续前进1234 发表于 2019-10-11 12:25:40

风不会说话 发表于 2019-10-11 10:16
下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行

可以了谢谢

继续前进1234 发表于 2019-10-11 12:26:44

wp231957 发表于 2019-10-11 09:58


谢谢大佬
页: [1]
查看完整版本: c语言 用嵌套循环写水仙花数