【问题标题】:My C program is stuck in a for loop我的 C 程序卡在 for 循环中
【发布时间】:2015-02-11 21:56:29
【问题描述】:

我正在尝试编写一个程序来计算用户提供的三角数。当我运行它时,它卡在 for 循环中,但仍会打印出正确的答案,因为我的 print 语句在循环之外。任何帮助是极大的赞赏。我的代码如下:

#include <stdio.h>

int main (void)
{

    //Declare your variables

    int triangle, triNumber, i;


    //Assign values for known variables

    triNumber = 0;


    //Get the user to input the triangular number that they want

    printf("Please enter the triangular number you would like: ");
    scanf("%i\n", &triangle);


    //Execute for loop that will calculate the triangular number

    for (i = 1; i <= triangle; i = i + 1)
    {
        triNumber = triNumber + 1;
    }


    //Display the user's triangular number

    printf("The triangular number is %i\n", triNumber);

    return 0;

}

【问题讨论】:

  • 如果你看到结果,你的程序并没有陷入循环。 Q.E.D.
  • 如果它卡在循环中并且打印在循环之外,它如何打印正确的答案?
  • 在 C 中不要使用循环 i = 1; i &lt;= triangle 而是 i = 0; i &lt; triangle。从1开始的表格迟早会回击你。
  • 这不计算三角数...它设置triNumber = triangle

标签: c for-loop infinite-loop


【解决方案1】:

它没有卡在 for 循环中。您必须从此更改您的 scanf() 声明:

scanf("%i\n", &triangle);

到这里:

scanf("%i", &triangle);

【讨论】:

  • @Rizier123:我很确定 Ctrl+D、Ctrl+Z 不是写换行符的方法,它们是结束流的方法。非常不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-15
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多