C语言最可爱的人投票选举

img


初学者怎么做?大家指点指点思路。(在3个候选人中进行投票,统计他们的票数)


#include <stdio.h>

int main()
{
    int n, count = 0, a = 0, b = 0, c = 0, xcnt = 0;
    while (1)
    {
        scanf("%d", &n);
        if (n == -1)
            break;
        if (n == 1)
            a++;
        if (n == 2)
            b++;
        if (n == 3)
            c++;
        if (n >= 1 && n <= 3)
            xcnt++; // 有效票
        count++;    //所有票
    }
    printf("A=%d\n", a);
    printf("B=%d\n", b);
    printf("C=%d\n", c);
    printf("Tot=%d\n", xcnt);
    if (a * 1.0 / count > 0.5)
        printf("A-yes");
    else if (b * 1.0 / count > 0.5)
        printf("B-yes");
    else if (c * 1.0 / count > 0.5)
        printf("C-yes");
    else
        printf("all-NO"); //题目结果是按所有票统计的,因此为No

    return 0;
}

#include<stdio.h>
void main()
{
    int k=0,suma=0,sumb=0,sumc=0,count=0;
    while(1)
    {
        scanf("%d ",&k);
        if((k>=1)&&(k<=3))
        {
            switch (k)
            {
                case 1:suma++;break;
                case 2:sumb++;break;
                case 3:sumc++;break;
            }
            count++;
        }
        else if(k==-1)
            break;
    }
    printf("A=%d\n",suma);
    printf("B=%d\n",sumb);
    printf("C=%d\n",sumc);
    printf("Tot=%d\n",count);
    if(suma>count/2)
        printf("A-yes\n");
    if(sumb>count/2)
        printf("B-yes\n");
    if(sumc>count/2)
        printf("C-yes\n");
    if((suma<=count/2)||(sumb>count/2)||(sumc>count/2))
        printf("all-NO\n");
}
仅供参考!