水仙花数个十百位定义位置

求问为啥abc放到for外面就出错?

int main(void)
{
    int i,a,b,c;
           a=i/100;
        b=(i%100)/10;
        c=i%10;
    for(i=100;i<1000;++i)
    {
        
        if(i==a*a*a+b*b*b+c*c*c)
            printf("%d\n",i);
    }
    return 0;
}

放在for循环外面的时候,变量 i 没有初始化,没有赋值,在计算abc时使用了未初始化的变量,所以报错

而且,abc放在for循环外面的时候,abc的值不会随 i 的改变而改变,for循环就失去意义了。

abc放到for外面就只计算一次
应该放for里面,每次循环i的值改变后abc要重新计算
如有帮助,望采纳!谢谢!


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