/*
* @Author: 365JHWZGo
* @Description: 1012 数字分类 (20 分)
* @Date: 2021-09-08 19:27:50
* @FilePath: \VScodeC++practice\PAT\numberClassify.cpp
* @LastEditTime: 2021-09-08 20:04:34
* @LastEditors: 365JHWZGo
*/
#include <iostream>
using namespace std;
int main()
{
int number;
string A1 = "N", A2 = "N", A3 = "N", A4 = "N", A5 = "N";
int oddsum1 = 0, crosssum2 = 0, num3 = 0, max5 = 0, maxWide;
int time = 0, t = 0; //时间
float float4 = 0.0, sum4 = 0.0;
cin >> maxWide; //最大范围
for (int i = 0; i < maxWide; i++)
{
cin >> number;
switch (number % 5)
{
case 0:
if (number % 2 == 0)
oddsum1 += number;
break;
case 1:
time++;
if (time % 2 == 0)
crosssum2 -= number;
else
crosssum2 += number;
break;
case 2:
num3++;
break;
case 3:
sum4 += number;
t++;
break;
case 4:
if (number > max5)
max5 = number;
break;
default:
break;
}
}
if (oddsum1 == 0)
cout << A1 << " ";
else
cout << oddsum1 << " ";
if (crosssum2 == 0 && time == 0) //虽然题目中又说是正整数,但是当出现偶数个相同的值相同时,结果和仍可能为0,因此需要加前提条件,当和为0并且没有出现过
cout << A2 << " ";
else
cout << crosssum2 << " ";
if (num3 == 0)
cout << A3 << " ";
else
cout << num3 << " ";
if (sum4 == 0)
cout << A4 << " ";
else
printf("%.1f ", sum4 / t);
if (max5 == 0)
cout << A5;
else
cout << max5;
return 0;
}
1012 数字分类 (20 分)
最新推荐文章于 2024-10-16 14:32:06 发布