为什么 C 在第一个 for 循环之后不执行任何操作?

Why does C not execute anything after the 1st for loop?

我刚刚开始学习一些基本的 C,在尝试 运行 这个特定的代码片段时我没有遇到任何错误:

#include <stdio.h>
void main()
{
float soln[5];
int a[4] = {2,3,-11,-6},d,e,r=1;
for (float y =-10.0000; y<=10.0000; y += 0.1)
{
    d = a[0]*y*y*y + a[1]*y*y +a[2]*y + a[3];
    if (d == 0)
    {
        printf("\n SOLUTION \t");
        soln[e] = y;
        printf("%f",soln[e]);
        e+=1;
    }
    else
    {
        printf("\n %d NO SOLUTION %d \n",r,d);
        r+=1;
    }
}
printf("ok");
for( int p; p<3;p++)
    {
        printf(" %f ",soln[p]);
    }
}

我想做的是尝试求解 3 次多项式方程并将解存储在另一个数组中,我想使用上述第二个 for 循环来显示它。然而,在执行第一个 for 循环后,程序直接以 printf 语句结束,最后输出 Ok。任何建议/帮助将不胜感激:D

您从未初始化 p。

尝试:for(int p = 0; p < 3; p++) { ... }