怎么写啊请问 使用数组还要循环吗? 用case语句不行吗?

选票统计。10张选票,三名候选人,编号分别是
1、2、3,统计每个候选人的得票数。
测试数据如下:
输入10张选票中选中候选人的编号:2 3 1 2 3 3 2 3 2
1号候选人的得票数为:1
2号候选人的得票数为:4
3号候选人的得票数为:4

定义3个元素的数组,初始为0,如果输入1,则第一个元素值加1

#include <stdio.h>
int main()
{
    int num[3] = {0};
    int i,n;
    for(i=0;i<10;i++)
    {
        scanf("%d",&n);
        num[n-1]++;
    }
    for(i=0;i<3;i++)
        printf("%d号候选人的得票数为:%d\n",i+1,num[i]);
}

需要的,使用switch也是要循环的,因为有十张选票,所以要循环遍历。

用switch只会将代码复杂化,可以这样写:

#include <stdio.h>

int main()
{
    int n = 10;
    printf("输入10张选票中选中候选人的编号: ");
    
    int tmp;
    int num[3] = { 0 };
    while (n > 0)
    {
        scanf_s("%d", &tmp);

        if (tmp > 0 && tmp <= 3)
            num[tmp - 1]++;
        
        n--;
    }

    for (tmp = 0; tmp < 3; tmp++)
    {
        printf("%d号候选人的得票数为:%d\n", tmp + 1, num[tmp]);

    }


    return 0;
}

如果对您有用,望采纳。