题解 | 牛牛的考试

牛牛的考试

https://www.nowcoder.com/practice/1a7a7c8d721547a29107cf02330ffe72

#include <stdio.h>
#include<string.h>
int main() 
{
    int T;
    char a[601];
    int b[4];
    scanf("%d",&T);
    for(int i=0;i<T;i++)
    {
        int count1=0,count2=0;
        scanf("%s",a);
        b[0]=strlen(a);
        int min=b[0],max=b[0];
        for(int j=1;j<4;j++)
        {
            scanf("%s",a);
            b[j]=strlen(a);
            if(b[j]<min)
            {
                min=b[j];
            }
            if(b[j]>max)
            {
                max=b[j];
            }
        }
        for(int k=0;k<4;k++)
        {
            if(b[k]==min)
            {
                count1++;
            }
            if(b[k]==max)
            {
                count2++;
            }
        }
        if(b[0]<b[1]&&b[0]<b[2]&&b[0]<b[3]&&count2>1)
        {
            printf("A\n");
        }
        else if(b[1]<b[0]&&b[1]<b[2]&&b[1]<b[3]&&count2>1)
        {
            printf("B\n");
        }
        else if(b[2]<b[0]&&b[2]<b[1]&&b[2]<b[3]&&count2>1)
        {
            printf("C\n");
        }
        else if(b[3]<b[1]&&b[3]<b[2]&&b[3]<b[0]&&count2>1)
        {
            printf("D\n");
        }
        else if(b[0]>b[1]&&b[0]>b[2]&&b[0]>b[3]&&count1>1)
        {
            printf("A\n");
        }
        else if(b[1]>b[0]&&b[1]>b[2]&&b[1]>b[3]&&count1>1)
        {
            printf("B\n");
        }
        else if(b[2]>b[0]&&b[2]>b[1]&&b[2]>b[3]&&count1>1)
        {
            printf("C\n");
        }
        else if(b[3]>b[0]&&b[3]>b[1]&&b[3]>b[2]&&count1>1)
        {
            printf("D\n");
        }
        else
        {
            printf("C\n");
        }
    }
    return 0;
}

需注意需要判断前两种情况的最大最小不止一个。否则则为情况三。

全部评论

相关推荐

01-30 10:21
中北大学 golang
27届学院本誓死冲击...:技术栈不用搞这么详细,主要还是看实习和项目,毕竟技术栈就那点,你能写这么多,别人也可以写这么多,模版换一下换成上下的,不知道怎么排版可以去看看别人怎么写
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务