判断1000内的水仙花数,并求他们的和

咋样在1000以内的水仙花数求和

#include<stdio.h>
int main() {
    int s=0,i,a,b,c;
    for(i=100; i<1000; i++) {
        a=i%10;
        b=i/10%10;
        c=i/100;
        if(a*a*a+b*b*b+c*c*c==i){
            s+=i; 
        }
    }
    printf("%d",s);
    return 0;
}


 觉得有用的话采纳一下哈

回答:水仙花数,C语言,文章如下:

习题5.8 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身_ajwx_1127的博客-CSDN博客 #include <stdio.h>int main(){ int a,b,c,n; printf("3位数以内的水仙花数为:\n"); for (n=100;n<=999;n++) { a=n/100; b=n/10%10; c=n%100%10; if(n==a*a*a+b*b*b+c*c*c) printf("%d\t",n); } printf("\n"); return 0;} https://blog.csdn.net/ajwx_1127/article/details/106946963?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163582415416780274176031%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163582415416780274176031&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-106946963.first_rank_v2_pc_rank_v29&utm_term=%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0&spm=1018.2226.3001.4449

#include <stdio.h>
int main()
{
    int a,b,c,n,sum=0;
    printf("3位数以内的水仙花数为:\n");
    for (n=100;n<=999;n++)
    {
        a=n/100;
        b=n/10%10;
        c=n%100%10;
        if(n==a*a*a+b*b*b+c*c*c){
            sum+=n;
            printf("%d\t",n);
        }
        
    }
    printf("\n");
    printf("和为:%d\n",sum);
    printf("\n");
    return 0;
}


截图如下:

img

一楼,你的s在每次循环开始之前没有初始化