【问题标题】:Why does C not execute anything after the 1st for loop?为什么 C 在第一个 for 循环之后不执行任何操作?
【发布时间】:2021-06-27 02:27:54
【问题描述】:

我刚刚开始学习一些基本的 C 语言,在尝试运行这段特殊的 sn-p 代码时没有遇到任何错误:

#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

【问题讨论】:

  • for( int p; p&lt;3;p++)。需要将p 初始化为那里的某个值。
  • 哦,好吧,我试试看
  • soln[e] = y; 查看e 的值(未初始化)。提示:学习进行基本调试。在调试器中运行您的程序并逐行执行,检查运行时的变量和程序流程。
  • @kaylum 可以。感谢您的提示:D

标签: c for-loop runtime


【解决方案1】:

你从未初始化 p。

尝试:for(int p = 0; p

【讨论】:

  • 你有没有初始化变量de@chcheetah
  • @Mr.Chip,不,我没有。我也应该初始化它们吗?
  • 我觉得你应该试一试。 de 都应该初始化为零。
  • d 不需要初始化,因为它是在使用前设置的。
  • @kekag 我也试过了,它现在可以工作了,谢谢:)
猜你喜欢
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多