首先明确的强调一下,是说的超过投票人数一半,不是有效投票人数一半,很多人陷在一个坑里面
上代码:

#include <stdio.h>
int main()
{
    int i = 0, A = 0, B = 0, C = 0,n = 0, count = 0;
    while (n != -1)    /*控制循环输入*/
    {
        scanf("%d", &n);
        switch (n)     
        {
        case 1:A++;count++;break;
        case 2:B++;count++;break;
        case 3:C++;count++;break;
        default:count++;break;       /*计算总的投票人数,不是有效投票人数,所以需要有default*/
        }
    }
    printf("A=%d\n", A);
    printf("B=%d\n", B);
    printf("C=%d\n", C);
    printf("Tot=%d\n", A + B + C);  /*这是有效投票人数*/
    for (i = 0; i < 1; i++)       /*其实循环没必要,我懒得修改了,直接判断就可以*/
    {
        if (A > (count/2))
            printf("A-yes\n");
        else if (B > (count/2))
            printf("B-yes\n");
        else if (C > (count/2))
            printf("C-yes\n");
        else
            printf("all-NO\n");
    }
    return 0;
}