为什么我的程序为数组的每个元素打印“ 0”?

时间:2019-07-16 09:36:34

标签: c

我正在尝试解决此问题https://codeforces.com/problemset/problem/5/C 我看到了某人的代码以了解应如何解决该问题。我试图理解程序的每个部分,这里是a link问题的解决方案,并且我写了这个a link部分来了解它是如何工作的。

我尝试给出输入“)()()()”,它返回“ 0 0 0”作为输出。

for (i = 0; i < n; i++) {
    if (ar[i] == '(') {
        posOpen[m++] = i;
        printf("%d ", posOpen[i]);
    }
}

我希望“)()()()”的输出为“ 1 3 5”,但实际输出为“ 0 0 0” 但是,对于“(((((”),输出为“ 0 1 2 3”。

1 个答案:

答案 0 :(得分:1)

printf("%d ", posOpen[i]);

应该是

printf("%d ", posOpen[m-1]);