| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 657 人关注过本帖
标题:水仙花数为什么这样写不对啊?
只看楼主 加入收藏
书恒
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:48
专家分:52
注 册:2009-11-10
结帖率:100%
收藏
已结贴  问题点数:15 回复次数:6 
水仙花数为什么这样写不对啊?

 
int num1()
{
 int i,n;
 for(n=100;n<1000;n++)
  i=n/10;
  return(i);
}
int num2()
{
 int j,n,i;
 i=num1();
 for(n=100;n<1000;n++)
  j=n/10-i*10;
  return(j);
}
int num3()
{
 int k,n;
 for(n=100;n<1000;n++)
  k=n%10;
  return(k);
}
main()
{
 int num1();
 int num2();
 int num3();
 int a,b,c,n;
 a=num1();
 b=num2();
 c=num3();
 for(n=100;n<1000;n++)
 {
  if(n==a*a*a+b*b*b+c*c*c)
  printf("%4d",n);

 }
 printf("\n");
}
 
哪位指导一下啊?函数的嵌套调用不太懂,谁能讲一下啊?
搜索更多相关主题的帖子: 水仙花 
2009-11-30 20:52
佳嘉
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:534
专家分:1383
注 册:2009-11-8
收藏
得分:4 
我把你的改写了一下
你看看
 #include<stdio.h>
int num1(int i)
{
i=i/10;
  return(i);
}
int num2(int i)
{
    i=i%10;

  return(i);
}
int num3(int n)
{
int m=0;

do{
m=10*m+num2(n);
n=num1(n);
 }while(n>0);
  return(m);
}
main()
{
int n;
for(n=100;n<1000;n++)
{ if(n==num3(n))
printf("%4d",n);
}
   
printf("\n");
getch();
}
2009-11-30 21:27
gpfsky
Rank: 1
等 级:新手上路
帖 子:3
专家分:8
注 册:2009-11-30
收藏
得分:3 
#include<stdio.h>

main()
{
    int a,b,c,n;
    for(n=100;n<1000;n++)
    {
        a=n/100;
        b=n/10-a*10;
        c=n%10;
        if(n==a*a*a+b*b*b+c*c*c)
            printf("%4d",n);
        
    }
    printf("\n");
}
这个就可以实现
不用嵌套,并且楼主的算法中的第一个函数错了
应该是除以100才对
在主函数中的三个函数调用有问题
那样写等于没写
希望对楼主有帮助
2009-11-30 22:16
陈大师
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:231
专家分:1038
注 册:2009-11-4
收藏
得分:8 
改了一下 看一下先 注意函数调用的传参
#include <stdio.h>
int num1(int n)
{
int i;
  i=n/100;
  return(i);
}
int num2(int n)
{
int j;
  j=n/10;
  j=j%10;
  return(j);
}
int num3(int n)
{
int k;
  k=n%10;
  return(k);
}
main()
{
int num1(int);
int num2(int);
int num3(int);
int a,b,c,n;

for(n=100;n<1000;n++)
{a=num1(n);
b=num2(n);
c=num3(n);
 if(n==a*a*a+b*b*b+c*c*c)
  printf("%4d",n);
}
printf("\n");
}

2009-11-30 22:30
书恒
Rank: 2
来 自:石家庄
等 级:论坛游民
帖 子:48
专家分:52
注 册:2009-11-10
收藏
得分:0 
回复 3楼 gpfsky
我知道这样写,可是要求用函数嵌套的方法来求。

好好学习,誓死学好专业!!!
2009-12-01 15:05
a1042802142
Rank: 1
来 自:dezhou
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-12-23
收藏
得分:0 
首先是第一个FOR语句i=n/10改成i=n%100
另外看一下一个调用的函数
int num1()
{
int i,n;
for(n=100;n<1000;n++)
  i=n/10;
  return(i);
}
for语句到;结束 所 以I最后得到的只是一个值9 后面的也一样,我认为你运行的结果应该只有一个值.
我想水仙花问题实在没必要这么做,楼上的很好.
         

我学了就两个月,可能说的不咋地,见笑了.以后也帮帮我啊......


2009-12-25 10:37
a1042802142
Rank: 1
来 自:dezhou
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-12-23
收藏
得分:0 
改成i=n/100
2009-12-25 10:38
快速回复:水仙花数为什么这样写不对啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017717 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved