【问题标题】:Code not running but compiles? [closed]代码未运行但编译? [关闭]
【发布时间】:2017-07-06 12:52:04
【问题描述】:

过去两天我一直在尝试自学 C,但我似乎无法让这个程序运行。对于这个可能微不足道的问题,刚刚开始,似乎无法快速找到答案。

#include <stdio.h>

void chopper() {
    int z = 0;
    while (z < 10) {
        printf("They equal and this code works!");
        z++;
    }
}

int main() {
    int x = 0;

    int flag = 0;

    if (flag == 1) {
        chopper();
    }
    for (int x; x < 10; x++) {
        printf("%d\n", x);
        if (x == 10) {
            flag == 1;
        }
    }
    return 0;
}

【问题讨论】:

  • 你真的想用这段代码完成什么?
  • 你能告诉我们预期的输入和输出是什么吗? not running 是什么意思?以下是如何提问的指南:stackoverflow.com/help/mcve
  • 我不确定它是如何编译的,也没有抱怨x的重新声明。
  • int x后面加= 0能用吗?
  • @Shak;什么????

标签: c loops scope


【解决方案1】:

您有多个问题。

  • flag == 1; 里面的if 没用。可能您的意思是并且想要flag = 1;
  • 在 for 循环中,x 未初始化。
  • 外部作用域x未使用。注意

你想要的是将for循环语句重写为

for (x; x < 10; x++)

或者,

for (; x < 10; x++)

利用外部x 变量。根据显示的代码,您不需要两个单独的变量。


注意:要了解有关范围的更多信息,请refer to this previous Q&A

【讨论】:

    猜你喜欢
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多