| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5218 人关注过本帖
标题:c语言求水仙花数
只看楼主 加入收藏
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
以下是引用叶纤在2020-1-10 00:57:57的发言:

我看看我能换种方式写你这题吗

因为我不怎么懂c的输入输出耗费了很长时间
以下是我的代码如果结果还是多一个100的话那就是你的编译器的问题了
方法一!!!!
#include<stdio.h>
int main (void)
{   int sum,m,a, n;
 printf("Input m: Input n:");
  scanf("%d%d",&m,&n);
     for(int i=m;i<=n;++i,++m)
     {     sum=(m/100)*(m/100)*(m/100)+(m%100/10)*(m%100/10)*(m%100/10)+(m%10)*(m%10)*(m%10);
           if(sum == m)
           { printf("%d\n",sum);
           }
     }
}

方法二!!!
#include<stdio.h>
int a(int m,int n)
{
    int sum;
     for(int i=m;i<=n;++i,++m)
     {     sum=(m/100)*(m/100)*(m/100)+(m%100/10)*(m%100/10)*(m%100/10)+(m%10)*(m%10)*(m%10);
           if(sum == m)
           { printf("%d\n",sum);
           }
     }return 0;
}
int main()
{
    int m;
int n;
    printf("Input m: Input n:");
    scanf("%d%d",&m,&n);
    a(m,n);
    return 0;
}
   



[此贴子已经被作者于2020-1-11 11:14编辑过]

收到的鲜花
  • Z10202020-01-11 08:20 送鲜花  1朵  

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-10 02:02
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
收藏
得分:0 
#include<stdio.h>

int fun(int i) {
    int sum = 0; //各位数字立方和
    int temp;//存储各位数字
    int val = i; //先将i值存储到val,等下和立方和比较
    while(i) {
        temp = i % 10;
        sum += temp*temp*temp;
        i /= 10;
    }
    if(val==sum) {
        return 1;
    } else {
        return -1;
    }

}
int main(void) {
    int m,n,i;
    printf("Input m:");
    scanf("%d",&m);
    printf("Input n:");
    scanf("%d",&n);
    for(i=m; i<=n; ++i) {

        if(1 == fun(i)) {
            printf("%d\n",i);
        }
    }
    return 0;
}
输入输出:
Input m:100
Input n:400
153
370
371
收到的鲜花
  • Z10202020-01-11 08:19 送鲜花  1朵  

借用一下侯捷的话:勿在浮沙筑高台。
2020-01-10 08:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用Z1020在2020-1-9 23:39:36的发言:

int a(int i)
{
    int sum;
    sum=(i/100)*(i/100)*(i/100)+(i%100/10)*(i%100/10)*(i%100/10)+(i%10)*(i%10)*(i%10);
    if(sum==i)
        return 1;
}
像这种明显错误的代码,难道你的编译器不给个错误或警告?!
例如 warning: control reaches end of non-void function [-Wreturn-type]
或 warning C4715: 'a' : not all control paths return a value
收到的鲜花
  • 叶纤2020-01-10 12:24 送鲜花  1朵  
  • Z10202020-01-11 08:19 送鲜花  1朵  
2020-01-10 09:23
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
收藏
得分:0 
回复楼上,楼上版主大大的回答简直就是上帝,要不新手就很容易跟着楼主的写法走了,(我的几个编译器加在线翻译工具都通过了楼主的代码)真的很让人怀疑写法,a函数里的return 1到底是返回给sum,还是a?如果返回sum那么main函数里没有sum,压根不是一个空间的,如果1返回给a,a(i)里的i又在main中不明确那a(i)不应该是1吗?等等的疑问真的很困惑人,版主大大这一指明,简直就是上帝之光

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-01-10 12:24
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 11楼 叶纤
此等好学之心实在令我敬佩!已测试,代码正确,算出来也没有多什么。非常感谢小姐姐的热心回答!今天晚上早点睡哟!
2020-01-10 20:44
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 13楼 rjsp
版主大大好!我已经明白了你的意思,但是我的编译器确实没有警告或者错误,并且我的教科书上写的是return可以返回表达式,表达式就是常量,变量和式子吧...附上书上的一个例子
图片附件: 游客没有浏览图片的权限,请 登录注册
,不知道我是不是理解错了你的意思,谢谢大大,还望继续指教。
2020-01-10 20:49
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 12楼 吕孟伟
感谢!原来循环还可以这么写!
2020-01-10 20:51
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 9楼 太守
对!怪我英语不好,没看出来这是提示输出的意思...感谢!
2020-01-10 20:53
Z1020
Rank: 1
等 级:新手上路
帖 子:63
专家分:5
注 册:2019-11-9
收藏
得分:0 
回复 8楼 lidepeng1995
哈哈哈哈哈要得
2020-01-10 20:53
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1696
专家分:4295
注 册:2007-12-27
收藏
得分:0 

明白啥了就明白了
R斑快回来把话说清楚

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-01-10 21:14
快速回复:c语言求水仙花数
数据加载中...
 
   



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

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