首页
社区
课程
招聘
[求助]用C编写水仙花数的问题。
发表于: 2008-5-3 19:06 4586

[求助]用C编写水仙花数的问题。

2008-5-3 19:06
4586
为什么我用函数调用求解水仙花数只能得出一个数???153.代码如下:
#include<stdio.h>
void main()
{
             int sxh(int x,int y, int z);   /*水仙花数函数声明*/
             int a,b,c,i;
             i=sxh(a,b,c);
             printf("%d",i);
}
int  sxh(int x,int y,int z)
{
            int t;
            for(x=1;x<10;x++){
            for(y=0;y<10;y++){
            for(z=0;z<10;z++){
            if(t==x*x*x+y*y*y+z*z*z)
            return(t);
            }
             }
            }
            }
不用函数调用却能全部显示水仙花数。这是为什么,是不是函数调用的问题?
我是个菜鸟,大家不要见笑。请指点一二。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
函数只有一个return值,你如何输出多个数呢?

试试这个
#include <stdio.h>
int issxh(int x);
void main()
{
int i;
for(i=100;i<1000;i++){if(issxh(i)==1)printf("%d\n",i);}
}

int issxh(int x)
{
        int x1,x2,x3;
        x1=x/100;
        x2=(x%100)/10;
        x3=x%10;
        if((x1*x1*x1+x2*x2*x2+x3*x3*x3)==x){return(1);}else{return(0);}
}
2008-5-3 19:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看得我一头雾水。拷下来好好研究。
谢谢你了啊。
2008-5-3 20:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
老大,运行了下没反应。
我再看看先。
2008-5-3 20:27
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
5
void main()
{
int i;
for(i=100;i<1000;i++){if(issxh(i)==1)printf("%d\n",i);}
putchar();
}

main函数这样加一句?
2008-5-3 21:11
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
6
main()
{
int i,j,k,n;
printf("'water flower'number is:");
 for(n=100;n<1000;n++)
 {
  i=n/100;/*分解出百位*/
  j=n/10%10;/*分解出十位*/
  k=n%10;/*分解出个位*/
  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
   {
   printf("%-5d",n);
   }
 }
printf("\n");
}


我不懂C,但我会百度
2008-5-3 21:45
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
到cmd下运行啊,或者后面加个getchar()之类的,暂停一下。
2008-5-4 08:04
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
main()
{
int i,j,k,n;
printf("'water flower'number is:");
 for(n=100;n<1000;n++)
 {
  i=n/100;/*分解出百位*/
  j=n/10-i*10;/*分解出十位*/
  k=n%10;/*分解出个位*/
  if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
   {
   printf("%-5d",n);
   }
 }
printf("\n");
}
2008-5-4 22:24
0
游客
登录 | 注册 方可回帖
返回
//