刚接触C语言,想尝试解决数学题,但是代码运行出来的结果经过验证并不正确,请问我的哪个地方出错了?

问题:三个整数依次递增,且三数之积为504,求三个数分别为多少
计算的结果是7、8、9
代码如下
#include<stdio.h>
int main()
{ int a,b,c,d,e;
c=b+a,d=c+a;
e=bcd;
e=504;
printf("%d %d %d %d ",a,b,c,d);
return 0;
}
运行结果为16,0,16,32.
然后16*32的结果是512而不是504,计算的结果是7,8,9

e=bcd是不是有问题


for (int i = 1; i < 10; i++) {
        if (i * (i + 1) * (i + 2) == 504) {
            printf("%d,%d,%d", i, i + 1, i + 2);
            break;
        }
    }

然后为什么我的回复出现了两次啊,这个也是迷茫一批