PAT BASIC 1012

思路:

这个题大概是想考switch的使用吧,没什么难点,如果想知道cout怎么保留一位小数,去看一下我的博客

然后这个题的样例2我觉得有问题,明明有5,不能说是没有。既然样例这么理解那就按照他来。

代码:

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  int state[5] = { 0 };
  int a1 = 0, a2 = 0, a3 = 0, a5 = 0;
  double a4 = 0;
  int flag2 = 1, num4 = 0;
  int n, i, j, num;
  cin >> n;
  for (i = 0; i < n; i++)
  {
    cin >> num;
    switch (num%5)
    {
    case 0:
      if (num % 2 == 0)
      {
        state[0] = 1;
        a1 += num;
      }
      break;
    case 1:
      state[1] = 1;
      a2 = a2 + flag2*num;
      flag2 = -1 * flag2;
      break;
    case 2:
      state[2] = 1;
      a3++;
      break;
    case 3:
      state[3] = 1;
      a4 = a4 + num;
      num4++;
      break;
    case 4:
      state[4] = 1;
      if (num > a5)
        a5 = num;
      break;
    default:
      break;
    }
  }
  cout.setf(ios::fixed);
  a4 = a4 / num4;
  if (state[0])
    cout << a1 << " ";
  else cout << "N ";
  if (state[1])
    cout << a2 << " ";
  else cout << "N ";
  if (state[2])
    cout << a3 << " ";
  else cout << "N ";
  if (state[3])
    cout << fixed << setprecision(1) << a4 << " ";
  else cout << "N ";
  if (state[4])
    cout << a5;
  else cout << "N";
  //while (1)
  //{
  //}
  return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值