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;
} d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的 wp231957 发表于 2019-10-11 09:16
d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的
没理解,,, wp231957 发表于 2019-10-11 09:16
d= a*100+b*10+c;这个放在循环体外 是固定的而你的需求明显是变动的
那应该把d= a*100+b*10+c;放在什么位置啊 继续前进1234 发表于 2019-10-11 09:27
那应该把d= a*100+b*10+c;放在什么位置啊
肯定得放在最内循环啊
我现在都没有c编译器了没法帮你测试了 wp231957 发表于 2019-10-11 09:44
肯定得放在最内循环啊
我现在都没有c编译器了没法帮你测试了
那我现在放的位置不属于最内循环吗?{:5_96:} 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)试试
风不会说话 发表于 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)试试
还是一样 继续前进1234 发表于 2019-10-11 09:47
那我现在放的位置不属于最内循环吗?
int a, b, c, d;
d= a*100+b*10+c; //这不是最外循环之外吗
for (a = 1;a < 10;a++) 继续前进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
*/ 继续前进1234 发表于 2019-10-11 09:53
还是一样
下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行 风不会说话 发表于 2019-10-11 10:16
下面打印的d也改掉啊 改成a*100+b*10+c 当然直接把d放在循环内也行
可以了谢谢 wp231957 发表于 2019-10-11 09:58
谢谢大佬
页:
[1]