题目要求
代码
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int x[1000],num=0;
int c_1 = 0,c_2=0,flag_2=0,c_3=0,flag_4 =0,c_5=0;
float c_4=0.0;
int n;
cin >> n;
for(int i=0;i<n;i++)
{
cin >> x[num++];
}
for(int i=0;i<num;i++)
{
if(x[i]%10==0)
{
c_1+=x[i];
}
else if(x[i]%5==1)
{
c_2 += x[i] * pow(-1,flag_2);
flag_2++;
}
else if(x[i]%5==2)
{
c_3++;
}
else if(x[i]%5==3)
{
c_4+=x[i];
flag_4++;
}
else if(x[i]%5==4)
{
if(c_5<x[i]) c_5=x[i];
}
}
if(c_1>0) cout<<c_1<<' ';
else cout << 'N'<<' ';
if(flag_2>0) cout <<c_2<<' ';
else cout << 'N'<<' ';
if(c_3>0) cout <<c_3<<' ';
else cout << 'N'<<' ';
float ave = c_4 / flag_4;
if(c_4>0.0) printf("%.1f ",ave);
else cout << 'N'<<' ';
if(c_5>0) cout<<c_5;
else cout<<'N';
}
思路
首先呢,要看出来一个陷阱,就是那一列数字的开头是这一串数组的总数,我就是没看出这个第四个数总是没输出正确,佩服自己的傻。
那后面的是交给if
语句就可以啦,另外可能需要注意的就是最后的输出没有空格了,其他问题都不大的。