题目1363:欢乐斗地主------用数组计数的应用,注意1和2得排在最后,表示最大

#include<stdio.h>

int a[16];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int i,j;
        int m,p;
        for(i=0;i<16;i++) a[i]=0;
        for(i=0;i<n;i++)
        {
            scanf("%d",&j);
            if(j==1 || j==2) j=j+13;
            a[j]++;
        } 
        scanf("%d %d %d %d %d",&m,&m,&m,&p,&p);//输入中,可以用一样的参数
        if (m==1 || m==2) m+=13;
        int flag=0;//只要输出符合要求的最小的那一组,与实际情况中的游戏一样;
        for(i=m+1;i<=15;i++)
        {
            if (flag==1) break; 
               if (a[i]>=3)
               {
                   for(int k=3;k<=15;k++) 
                   if (a[k]>=2 && i!=k) 
                       {
                        flag=1;
                           if (i==14 || i==15) i-=13;
                           if (k==14 || k==15) k-=13;
                           printf("%d %d %d %d %d
",i,i,i,k,k);
                           break;
                       } 
               }      
        } 
        if(flag==0) printf("My God
");
    }
    return 0;
} 
原文地址:https://www.cnblogs.com/jianrenguo/p/6547769.html