用for循环和数组寻找找水仙花数,程序错误无法运行

#include <stdio.h>
#include<math.h>
int main()
{
double b[4],c[4],d[4],e,n,a[4];
for(n=0;n<4;n++)
{
scanf("%lf",&a[n]);
b[n]=a[n]/100;
c[n]=a[n]%100/10;
d[n]=a[n]%10;
do
{
if((pow(b[n],3)+pow(c[n],3)+pow(d[n],3))==a[n])
e=1;
else
e=0;
}
while(e=0);
printf("%g",a[n]);
}
return 0;
}

题目要求:计算机输入四个数,判断该四个数是否为水仙花数
水仙花数为:

img

首先n,e都不能是double,因为它负责计数,只能int,
然后while(e=0)中,e=0是赋值不是比较,它一直是真,改成e==0

供参考:

#include <stdio.h>
#include<math.h>
int main()
{
    int b, c, d, e, n, a[4];
    for (n = 100; n < 1000; n++)
    {
        //scanf("%d", &a[n]);
        b = n / 100;
        c = n / 10 % 10;
        d = n % 10;
        //do
        //{
        if ((b*b*b + c*c*c + d*d*d) == n)
            printf("%d\n", n);
            //else
            //    e = 0;
        //} while (e = 0);
        //printf("%g", a[n]);
    }
    return 0;
}