1012 数字分类 (20分)

用vis数组判断没有对应类型的数字,不能用a[i]的值为0判断,因为0的值模5也为0.

int a[10];
bool vis[10];
int cnt;
int n;

int main()
{
    while(cin>>n)
    {
        memset(a,0,sizeof a);
        memset(vis,0,sizeof vis);
        cnt=0;
        int flag=1;
        for(int i=0;i<n;i++)
        {
            int x;
            cin>>x;
            if(x % 5 == 0 && x % 2 == 0)
            {
                a[0]+=x;
                vis[0]=true;
            }
            if(x % 5 == 1)
            {
                a[1]+=flag*x;
                flag=-flag;
                vis[1]=true;
            }
            if(x % 5 == 2)
            {
                a[2]++;
                vis[2]=true;
            }
            if(x % 5 == 3)
            {
                cnt++;
                a[3]+=x;
                vis[3]=true;
            }
            if(x % 5 == 4)
            {
                a[4]=max(a[4],x);
                vis[4]=true;
            }
        }
        for(int i=0;i<5;i++)
        {
            if(i) cout<<' ';
            if(!vis[i]) cout<<'N';
            else if(i == 3) printf("%.1f",(double)a[3]/cnt);
            else cout<<a[i];
        }
        cout<<endl;
    }

    //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14336740.html