DT. 完善程序题-6002
完善程序题-6002
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
完善程序题:最长连续正数子段
【问题描述】
给定一个长度为n((1 n 10^5))的整数序列,求最长的连续子数组的长度,使得子数组中的每个元素都大于0(正数)。
如果所有数都不是正数,输出0。
【输入格式】
第一行一个整数n
第二行 n 个整数
【输出格式】
一个整数,表示最长连续正数子段的长度
【样例输入1】
6
1 -2 3 4 5 -1
【样例输出1】
3
(解释:子段 3 4 5 长度3)
【样例输入2】
4
-1 -2 -3 -4
【样例输出2】
0
【代码框架】
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
int cur = ___(1)___;
int ans = ___(1)___;
for (int i = 1; i <= n; i++) {
if (a[i] > 0) {
cur++;
if (cur > ans) ___(2)___;
} else {
if (cur > ans) ___(3)___;
cur = ___(4)___;
}
}
if (cur > ans) ___(5)___;
cout << ans;
return 0;
}
【选择题】
- (1) 处应填入? {{ select(1) }}
- A. 0
- B. 1
- C. -1
- D. n
- (2) 处应填入? {{ select(2) }}
- A. ans = cur
- B. cur = ans
- C. ans++
- D. continue
- (3) 处应填入? {{ select(3) }}
- A. ans = cur
- B. cur = ans
- C. ans = 0
- D. break
- (4) 处应填入? {{ select(4) }}
- A. 0
- B. 1
- C. cur
- D. ans
- (5) 处应填入? {{ select(5) }}
- A. ans = cur
- B. cur = ans
- C. ans = 0
- D. return 0
【参考答案】
- A
- A
- A
- A
- A