注册 登录
编程论坛 C语言论坛

请大佬帮忙看看为什么程序无法输出呢?

梦小123 发布于 2021-03-18 15:14, 1369 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录


在编译器和作业的网站提交上去都是对的,但是输出什么也没有显示,这是怎么回事呢?
int main()
{
    int i=1,a=0,b=0,c=0;
    while(i<=100)
    {
        if((i=a*10+b)&&(i=a*a*a+b*b*b))
        {
            printf("%d  ",i);
        }
        ++i;
    }
    while(i>100&&i<1000)
    {
        if((i=a*100+b*10+c)&&(i=a*a*a+b*b*b+c*c*c))
        {
                printf("%d  ",i);
        }
        ++i;
    }
    return 0;
}
2 回复
#2
rjsp2021-03-18 16:35
在编译器和作业的网站提交上去都是对的,
估计你的作业网站有bug。
另外,阿姆斯特朗数 并不一定是 立方和,而是“一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数”

程序代码:
#include <stdio.h>
#include <stdbool.h>

bool foo( unsigned n )
{
    unsigned sum = 0;
    for( unsigned t=n; t!=0; t/=10 )
        sum += (t%10)*(t%10)*(t%10);
    return sum == n;
}

int main( void )
{
    for( unsigned i=2; i!=1000; ++i )
        if( foo(i) )
            printf( "%u\n", i );
}

输出
153
370
371
407
#3
梦小1232021-03-19 11:14
回复 2楼 rjsp
谢谢!!
1