【发布时间】:2020-08-28 18:23:06
【问题描述】:
我想知道为什么当 i == n-1 时 i 的值没有更新为 i=0,正如我在代码中所写的那样。 bool 标志只是用来检查 if 语句是否正在呈现(它是)。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n, ans = 0;
scanf("%d", &n);
int s[n];
bool flag = false;
for (int i = 0; i < n; i++)
{
scanf("%d", &s[i]);
}
for (int i = 0; i < n; i++)
{
s[i] -= 1;
if (s[i] < 0)
break;
ans++;
if (i == (n - 1))
{
i=0;
flag = true;
}
}
printf("\n%d\n", ans);
printf("%d", flag);
}
return 0;
}
【问题讨论】:
-
int s[n];-- 这不是有效的 C++。 -
另见:Why should I not #include <bits/stdc++.h>? 然后添加
-Wshadow作为编译器选项。 -
没有迭代器。这是 C,不是 C++。
-
您好!欢迎!你能指定你测试这个的输入,以及预期的结果吗?
标签: c++ arrays for-loop if-statement