C++ 1012 数字分类(20 分)

注意点:

1:第一个数字是指的总数字多少    审题小心

2:

A2可能大于0也可能小于0

3:n1-n2+n3-n4的表示思路

(1):pow(x,y)   x的y次方   (-1)^n

(2):k=1   k*a   k=-k

4:

当时写代码时没有判断cntA4是否大于0,是0的话这个表达式不成立(导致总有一部分结果错误,花了我好久去找错误原因)

自写:

#include<iostream>
#include<math.h>
using namespace std;

int main()
{
  int A1=0,A2=0,A3=0,A5=0;
  double A4=0.0;
  int a;
  int k=1;
  int cntA2=0,cntA4=0;
  int N;
  cin >>N;
  
  //for(int i=0;i<N;i++)
  while(N--)
  {
    cin>>a;
    if(a%10==0) 
      A1 +=a;
    else if (a%5==1) 
    {
      A2 = A2+k*a;
      k=-k;
      cntA2++;
    }
    else if(a%5==2) A3++;
    else if(a%5==3) 
    {
      A4 +=a;
      cntA4 =cntA4+1;
    }
    else if(a%5==4)
    {
      if(a>A5) A5=a;
    }
  }
  
  if(cntA4>0) A4=A4/cntA4;
  
  //输出
  if (A1==0) cout<<"N"<<" ";
  else if (A1>0) cout<<A1<<" ";
  
  if (cntA2==0) cout<<"N"<<" ";
  else if (cntA2>0) cout<<A2<<" ";
  
  if (A3==0) cout<<"N"<<" ";
  else if (A3>0) cout<<A3<<" ";
  
  if (A4==0.0) cout<<"N"<<" ";
  else if (A4>0.0) 
		printf("%.1f ",A4);
  
  if (A5==0) cout<<"N";
  else if (A5>0) cout<<A5;
  
  return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36122764/article/details/82082276