| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1997 人关注过本帖
标题:有关水仙花数的问题
只看楼主 加入收藏
trzlwh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
收藏
 问题点数:0 回复次数:12 
有关水仙花数的问题
大家好啊。我的要求是输入一个三位数,如果是水仙花数就输出yes如果不是就输出no输入的时候要求可以输入多个三位数,每位数占一列。输出是也是一个结果占一列。现在的主要问题就是如何解决这种一列输入的问题。
下面是我的程序,可是有问题,麻烦哥哥姐姐们帮忙看下啊~谢谢!
#include"stdio.h"
void main()
{
int i,j,k,n;
printf("please input a num");
scanf("%d\n",&n);
i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k)
  printf("yes");
else  
  printf("no");
}

[[it] 本帖最后由 trzlwh 于 2008-4-20 11:29 编辑 [/it]]
搜索更多相关主题的帖子: 水仙花 printf 位数 yes 
2008-04-20 10:54
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
scanf("%d\n",&n);句子里最好没东西 就 scanf("%d",&n);j=n/10-i*10;也错了 j=n/10%10
有一种方法叫循环拆分 你去看下  要不你的程序仅局限 3位数

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-20 11:04
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
#include <stdio.h>

main()
{
    int i, j, k, n;
    printf("输入一个3位数:");
    scanf("%d", &n);

    i = n/100;
    j = (n - i * 100) / 10;
    k = n % 10;
    if(i * i * i + j * j * j + k * k * k == n)
        printf("是水仙花数\n");
    else printf("不是水仙花数\n");
}

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-04-20 11:05
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
#include<stdio.h>
int main(void)
{
     int n;
     while(scanf("%d",&n)!=EOF)
    {
       int  j,m = n, sum = 0;
       for( j = n% 10; n > 0; n /=10, j = n%10 )
            sum += j*j*j;
       m == sum? puts("yes\n"): puts("no\n");
    }
return 0;
}

樱花大战,  有爱.
2008-04-20 11:15
trzlwh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
收藏
得分:0 
回复 2# 的帖子
谢谢你了!现在我遇到的一个问题是要求可以输入多个数,是一列输入的。然后输出他们是yes还是no,也是以列的形式输出的。请问你知道应该怎么做吗?
2008-04-20 11:26
trzlwh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
收藏
得分:0 
回复 3# 的帖子
谢谢你了!现在我遇到的一个问题是要求可以输入多个数,是一列输入的。然后输出他们是yes还是no,也是以列的形式输出的。请问你知道应该怎么做吗?
2008-04-20 11:26
trzlwh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
收藏
得分:0 
回复 4# 的帖子
谢谢你了!现在我遇到的一个问题是要求可以输入多个数,是一列输入的。然后输出他们是yes还是no,也是以列的形式输出的。请问你知道应该怎么做吗?
2008-04-20 11:27
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
duo 行测试 ?? 那就是 4楼写的 要是多位的话  要循环拆分 while(n)
 { c=n%10;
   n=n/10;
}

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-20 11:29
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
han 看了下 4楼的又支持多行测试也支持  多位输入 要是看不明白循环里的 可参看 我 8#的循环

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-20 11:32
trzlwh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-20
收藏
得分:0 
回复 8# 的帖子
四楼的结果是对的。但是那个是输入一个判断一个。而现在的要求是输入多个数然后在判断。比如:输入
153
135
输出
yes
no
是这样的输出才对,
2008-04-20 11:34
快速回复:有关水仙花数的问题
数据加载中...
 
   



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

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