大佬求指教 为什么只对了71.2%

#include<bits/stdc++.h>
int main()
{
    int a;
    int flag=0;
    int b[3]={0};
    while(a!=-1)
    {
        scanf("%d",&a);
        if(a==1) b[0]++;
        if(a==2) b[1]++;
        if(a==3) b[2]++;
        flag++;
    }
    printf("A=%d\n",b[0]);
    printf("B=%d\n",b[1]);
    printf("C=%d\n",b[2]);
    printf("Tot=%d\n",b[0]+b[1]+b[2]);
    if(flag/2>b[0] && flag/2>b[1] && flag/2>b[1])
    printf("all-NO\n");
    else
    {
        if(b[0]>flag/2) printf("A-yes\n");
        else if(b[1]>flag/2) printf("B-yes\n");
        else if(b[2]>flag/2) printf("C-yes\n");
    }
    return 0;
}
全部评论
是你自己写错了   if(flag/2>b[0] && flag/2>b[1] && flag/2>b[1]) 这个最后是b[2];
1 回复 分享
发布于 2020-01-03 21:28
如果想不对变量a进行初始化,可以使用do while语句
点赞 回复 分享
发布于 2020-01-03 16:37
刚开始a没有赋值,a会有随机值,while进行判断可能会出错。
点赞 回复 分享
发布于 2020-01-03 16:31

相关推荐

不愿透露姓名的神秘牛友
今天 12:05
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
认真搞学习:这么良心的老板真少见
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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