1012 数字分类 (20 分)
这道题可以设置两个数组A[5]和cnt[5],cnt用于计数。当输入的值满足要求时则对应的cnt++。需要注意的是cnt数组为double型,这样在计算A[4]时比较方便。
代码如下:
#include<cstdio>
using namespace std;
int main()
{
int A[5+1] = {0};
double cnt[5+1] = {0};
int N , f=1 ;
scanf("%d",&N);
for(int i=1 ; i<=N ; i++)
{
int x;
scanf("%d",&x);
if(x%5==0 && x%2==0)
{
A[1] += x ;
cnt[1]++;
}
else if(x%5==1)
{
A[2] += f * x;
f = -f;
cnt[2]++;
}
else if(x%5==2)
{
A[3]++;
cnt[3]++;
}
else if(x%5==3)
{
A[4] += x;
cnt[4]++;
}
else if(x%5==4)
{
if(x>A[5])
A[5] = x;
cnt[5]++;
}
}
if(cnt[1] != 0)
printf("%d ",A[1]);
else if(cnt[1] == 0)
printf("N ");
if(cnt[2] != 0)
printf("%d ",A[2]);
else if(cnt[2] == 0)
printf("N ");
if(cnt[3] != 0)
printf("%d ",A[3]);
else if(cnt[3] == 0)
printf("N ");
if(cnt[4] != 0)
printf("%.1lf ",A[4]/cnt[4]);
else if(cnt[4] == 0)
printf("N ");
if(cnt[5] != 0)
printf("%d",A[5]);
else if(cnt[5] == 0)
printf("N");
}