大佬求指教 为什么只对了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没有赋值,a会有随机值,while进行判断可能会出错。
点赞 回复
分享
发布于 2020-01-03 16:31
联想
校招火热招聘中
官网直投
如果想不对变量a进行初始化,可以使用do while语句
点赞 回复
分享
发布于 2020-01-03 16:37

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务