标题:水仙花数,但是五位数的时候没有结果输出,不知道为什么,但是三位数和四位 ...
只看楼主
菠萝吹雪
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2022-10-14
结帖率:0
已结贴  问题点数:20 回复次数:4 
水仙花数,但是五位数的时候没有结果输出,不知道为什么,但是三位数和四位数可以判断。
#include<stdio.h>
main()
{
    int a,b,c,d,e,f,g,h;
    while(scanf("%d",&a)!=EOF)
    {
        
        if(a>=100&&a<=99999)
        {
            
        if(a>=100&&a<=999)
        {b=a%10;
        c=a/10%10;
        d=a/100;
        h=d*d*d+b*b*b+c*c*c;
        
        if(h==a)
        printf("%d\n",a);
        else
        printf("No\n");}
        else
        if(a<=9999&&a>=1000)
        {
            b=a%10;
        c=a/10%10;
        d=a/100%10;
        e=a/1000;
            h=e*e*e*e+b*b*b*b+c*c*c*c+d*d*d*d;
            
            if(a==h)
            printf("%d\n",a);
            else
            printf("No\n");     
        }
        else
        if(a<=99999&&a>=10000)
        {
            b=a%10;
        c=a/10%10;
        d=a/100%10;
        e=a/1000%10;
        f=a/10000;
        
        h=f*f*f*f*f+b*b*b*b*b+c*c*c*c*c+d*d*d*d*d+e*e*e*e*e;
        if(a==h)
        printf("%d\n",a);}
        else
        printf("No\n");
        }
        else
        printf("Data error\n");
        
    }return 0;
 }
搜索更多相关主题的帖子: printf 位数 判断 水仙花数 输出 
2022-10-23 20:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
你将代码对齐排版一下就能发现问题了。
你的问题很简单,总结一下就是:故意把字写得扭扭歪歪,然后自己看不懂了
2022-10-24 10:03
菠萝吹雪
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2022-10-14
得分:0 
回复 2楼 rjsp
是是是
2022-11-02 16:32
apull
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:三体星系
等 级:版主
威 望:185
帖 子:1404
专家分:8479
注 册:2010-3-16
得分:0 
if(a==h)
printf("%d\n",a);}   放到下面else那句后面
2022-11-02 22:31
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:30
专家分:32
注 册:2022-3-19
得分:0 
回复如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x;
    int start = 1;
    int end = 1;
    int count;
    
    printf( "输入位数:" );
    scanf( "%d", &x );
    
    for( count = 1; count < x; count++ )
    {
        start *= 10;
    }
    
    for( count = 1; count <= x; count++ )
    {
        end *= 10;
    }
    
    for( ; start < end; start++ )
    {
        int t = start;
        int sum = 0;
        int digit;
        
        do{
            digit = t % 10;
            t /= 10;
            
            int p = digit;
            int j = 0;
            
            while( j < x - 1 )
            {
                p *= digit;
                j++;
            }
            
            sum += p;
        }while( t > 0 );
        
        if( sum == start)
        {
            printf(">%d\n", start);
        }
    }
    
    system ( "pause" );
    return 0; 
} 

不求知道一切,尽心发现一件。
2022-11-07 07:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-510423-1-1.html




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

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