PAT乙级 数字分类 (20)

这道题其实就是一个简单的逻辑题,由于没有编译环境,纯txt编程就会出各种小问题,错了几次。

后来找到了一个在线编程的小网站http://ideone.com/,那是相当粗暴了。

以后应该多用用。

这道题中有一个部分需要控制一下精度,顺便学习了一下cout怎么控制精度输出。

#include "iostream"
#include "stdio.h"
#include "string.h"
#include "iomanip"
using namespace std;
   
int main()
{
    int n;
    long num;
      
    long a1 = 0,a2 = 0,a3 = 0,a5 = -999999;
    double a4 = 0;
      
    long numa[5];
    memset(numa,0,sizeof(numa));
      
    int count = 1;
    cin>>n;
      
    /*
    A1 = 能被5整除的数字中所有偶数的和;
    A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
    A3 = 被5除后余2的数字的个数;
    A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
    A5 = 被5除后余4的数字中最大数字。
    */
      
    while(n--)
    {
      cin>>num;
      if((num%5==0)&&(num%2==0))
      {
          a1+=num;
          numa[0] ++;
      }
      else if(num%5==1)
      {
          numa[1]++;
          if(numa[1]%2==0)
              a2-=num;
          else
              a2+=num;
      }
      else if(num%5==2)
      {
          numa[2]++;  
      }
      else if(num%5==3)
      {
          numa[3]++;
          a4+=num;
      }
      else if(num%5==4)
      {
          numa[4]++;
          if(num>a5)
              a5 = num;
      }
    }
     
    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout.precision(1);
     
    if(numa[3]!=0)
    {
        a4 = double(a4/numa[3]);
        //cout<<"a4 = "<


你可能感兴趣的:(数据结构算法学习)