鱼C论坛

 找回密码
 立即注册
查看: 2574|回复: 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

#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
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

使用道具 举报

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

没理解,,,
想知道小甲鱼最近在做啥?请访问 -> 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;放在什么位置啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

肯定得放在最内循环啊  
我现在都没有c编译器了  没法帮你测试了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那我现在放的位置不属于最内循环吗?
想知道小甲鱼最近在做啥?请访问 -> 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)试试



想知道小甲鱼最近在做啥?请访问 -> 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)试试

还是一样
想知道小甲鱼最近在做啥?请访问 -> 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++)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

#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
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

可以了谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-11 12:26:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 15:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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