鱼C论坛

 找回密码
 立即注册
查看: 3077|回复: 12

[已解决]c语言 用嵌套循环写水仙花数

[复制链接]
发表于 2019-10-11 09:08:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 继续前进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;
}
最佳答案
2019-10-11 09:58:29

  1. #include <stdio.h>


  2. int main ( )
  3. {
  4.         int a, b, c, d;
  5.       
  6.         for (a = 1;a < 10;a++)
  7.         {
  8.                 for (b=0;b<10;b++)
  9.                 {
  10.                         for(c=0;c<10;c++)
  11.                         {
  12.                                  d= a*100+b*10+c;
  13.                                 if(d==a*a*a+b*b*b+c*c*c)
  14.                                 printf ("%d\t",d);
  15.                         }
  16.                 }
  17.                         
  18.         }
  19.                
  20.         return 0;
  21. }



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

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

  29. /out:ct1.exe
  30. ct1.obj

  31. e:\>ct1
  32. 153     370     371     407
  33. */
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-10-11 09:16:40 | 显示全部楼层
d= a*100+b*10+c;  这个放在循环体外 是固定的  而你的需求明显是变动的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

没理解,,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

那应该把d= a*100+b*10+c;放在什么位置啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 09:44:30 | 显示全部楼层
继续前进1234 发表于 2019-10-11 09:27
那应该把d= a*100+b*10+c;放在什么位置啊

肯定得放在最内循环啊  
我现在都没有c编译器了  没法帮你测试了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

那我现在放的位置不属于最内循环吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)试试



小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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)试试

还是一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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++)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 09:58:29 | 显示全部楼层    本楼为最佳答案   

  1. #include <stdio.h>


  2. int main ( )
  3. {
  4.         int a, b, c, d;
  5.       
  6.         for (a = 1;a < 10;a++)
  7.         {
  8.                 for (b=0;b<10;b++)
  9.                 {
  10.                         for(c=0;c<10;c++)
  11.                         {
  12.                                  d= a*100+b*10+c;
  13.                                 if(d==a*a*a+b*b*b+c*c*c)
  14.                                 printf ("%d\t",d);
  15.                         }
  16.                 }
  17.                         
  18.         }
  19.                
  20.         return 0;
  21. }



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

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

  29. /out:ct1.exe
  30. ct1.obj

  31. e:\>ct1
  32. 153     370     371     407
  33. */
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 10:16:01 | 显示全部楼层

下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 12:25:40 | 显示全部楼层
风不会说话 发表于 2019-10-11 10:16
下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行

可以了谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 12:26:44 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-3 08:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表