测试点7出错,原因未知,欢迎讨论
/*
PAT (Basic Level) Practice (中文)
1012 数字分类 (20分)
测试点7出错 原因未知
测试点8出错 交错相减其和可能为0
*/
# include<iostream>
# include<cmath>
# include<vector>
# include<cstdio>
using namespace std;
int main() {
int data[5] = { 0 };
vector<int> vec;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
vec.push_back(tmp);
}
vector<int>::iterator it; // 生成迭代器,用于遍历vec
int p = 0; // 用于交错相减的系数
int avg = 0; // 用于求均值的系数
int flag = 0; // 用于判断是否存在余1的数
for (it = vec.begin(); it != vec.end(); it++) {
switch (*it % 5)
{
case 0:
if (*it % 2 == 0)
data[0] += *it;
break;
case 1:
flag = 1;
data[1] += *it * pow(-1, p);
p++;
break;
case 2:
data[2]++;
break;
case 3:
data[3] += *it;
avg++;
break;
case 4:
if (data[4] < *it)
data[4] = *it;
break;
}
}
for (int i = 0; i < 5; i++) {
if (data[i] > 0) {
if (i == 3)
printf("%.1f ", data[i] * 1.0 / avg);
else if (i == 4)
printf("%d", data[i]);
else
printf("%d ", data[i]);
}
else {
if (flag == 1 && i == 1)
cout << 0 << " ";
else
i != 4 ? cout << 'N' << " " : cout << 'N';
}
}
return 0;
}