坑点基本没有,就是写起来太长了,后续会修改,考虑用数组存储五类数字的个数,在最后判断。用数组存储输出结果,在有小数的情况下采取强制类型转换(double)
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;
cin>>n;
int a1=0,a2=0,a3=0,a5=-1,a[1010],k4=0,k1=1;
double a4=0;
bool flag=false;
for (int i=0;i<n;i++)
{
scanf("%d",&a[i]);
if (a[i]%5==0&&a[i]%2==0)
a1+=a[i];
else if (a[i]%5==1)
{
a[i]=a[i]*k1;
k1=-k1;
a2+=a[i];
flag=true;
}
else if (a[i]%5==2)
a3++;
else if (a[i]%5==3)
{
a4+=a[i];
k4++;
}
else if(a[i]%5==4)
if (a5<a[i])
a5=a[i];
}
if (a1==0)
printf("N");
else
printf("%d",a1);
printf(" ");
if(flag==false)
printf("N");
else
printf("%d",a2);
printf(" ");
if(a3==0)
printf("N");
else
printf("%d",a3);
printf(" ");
if(k4==0)
printf("N");
else
printf("%.1f",a4*1.0/k4);
printf(" ");
if (a5==-1)
printf("N");
else
printf("%d",a5);
}