
最后一个测试点8答案错误,错误主要出现在a2的判断上,因为个人在输出a2时使用a2==0来判断输出。应该设置个标志判断a2是否有效。
#include "stdio.h"
#include <iostream>
using namespace std;
int main() {
int arr[1005] = { 0 };
int len = 0;
int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, tot_a4 = 0;
bool flag = false; //false加 true减
bool flag_a2 = false; //判断a2是否存在计算
cin >> len;
for (int i = 0; i < len; i++) {
cin >> arr[i];
}
for (int i = 0; i < len; i++) {
if (arr[i] % 5 == 0) {
if (arr[i] % 2 == 0) {
a1 += arr[i];
//cout << a1 << " " << arr[i] << endl;
}
}
if (arr[i] % 5 == 1) { //该点注意,这里可能结果和a2为0
flag_a2 = true; //在进入该函数内立即更新a2的标志,证明a2是有效的

博客指出PATB-1012题目中,最后一个测试点8的答案存在错误,关键问题在于对变量a2的判断。作者提到,原本通过a2==0来决定输出,但正确做法应设置有效标志来判断a2的状况。
最低0.47元/天 解锁文章

425

被折叠的 条评论
为什么被折叠?



