c语言 输出所有水仙花数

[复制链接]
查看11 | 回复3 | 2011-7-8 16:21:53 | 显示全部楼层 |阅读模式
#include "Stdio.h"
main()
{

int a,b,c,s;

s=100*a+10*b+c;

for(a=1;a<10;a++)

{

for(b=0;b<10;b++)

{

for(c=0;c<10;c++)

{

if(s==(a*a*a+b*b*b+c*c*c))

printf("%d\n",s);

}

}

}

getch();
}
帮忙看一下我这儿哪里错了,运行以后屏幕上什么都不显示,按任意键以后窗口关闭

回复

使用道具 举报

千问 | 2011-7-8 16:21:53 | 显示全部楼层
在第一个for循环前面给s赋值时,a、b、c的值没有初始化,所以整个s=100*a+10*b+c是不确定的值,程序运行便会出错!建议修改:将语句s=100*a+10*b+c放到条件语句if(s==(a*a*a+b*b*b+c*c*c))之前,这样s得到的是确定值,程序运行正常。修改后源程序如下:#include "Stdio.h"void main(){
int a,b,c,s;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
...
回复

使用道具 举报

千问 | 2011-7-8 16:21:53 | 显示全部楼层
在第一个for循环前面给s赋值时,a、b、c的值没有初始化,所以整个s=100*a+10*b+c是不确定的值,程序运行便会出错!建议修改:将语句s=100*a+10*b+c放到条件语句if(s==(a...
回复

使用道具 举报

千问 | 2011-7-8 16:21:53 | 显示全部楼层
楼主你好~~按照你的程序,你可能对于水仙话数有误解... 首先,水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153或3^3+7^3+0^3=370) 注意:是每个 位上 的数字。 而你的原代码写的效果是,例如第一次循环1^3+10^3+100^3...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行