某学校选举学生会主席,有赵青、钱花、孙瓷三人参选。c语言编写程序统计候选人选票,并输出每个候选人得票数和当选情况

某学校选举学生会主席,有赵青、钱花、孙瓷三人参选。c语言编写程序统计候选人选票,并输出每个候选人得票数和当选情况


#include <stdio.h>

int main() {
    int zhaoqing_votes = 0;
    int qianhua_votes = 0;
    int sunci_votes = 0;
    int total_votes = 0;

    // 统计选票
    int vote;
    while (1) {
        printf("请输入选票(1-赵青,2-钱花,3-孙瓷,0-结束投票):");
        scanf("%d", &vote);

        if (vote == 0) {
            break;
        } else if (vote == 1) {
            zhaoqing_votes++;
        } else if (vote == 2) {
            qianhua_votes++;
        } else if (vote == 3) {
            sunci_votes++;
        } else {
            printf("无效的选票!\n");
        }

        total_votes++;
    }

    // 输出候选人得票数
    printf("赵青得票数:%d\n", zhaoqing_votes);
    printf("钱花得票数:%d\n", qianhua_votes);
    printf("孙瓷得票数:%d\n", sunci_votes);
    printf("总投票数:%d\n", total_votes);

    // 判断当选情况
    if (zhaoqing_votes > qianhua_votes && zhaoqing_votes > sunci_votes) {
        printf("赵青当选为学生会主席!\n");
    } else if (qianhua_votes > zhaoqing_votes && qianhua_votes > sunci_votes) {
        printf("钱花当选为学生会主席!\n");
    } else if (sunci_votes > zhaoqing_votes && sunci_votes > qianhua_votes) {
        printf("孙瓷当选为学生会主席!\n");
    } else {
        printf("无人当选!\n");
    }

    return 0;
}

供参考:

#include<stdio.h>
int main()
{
    int  i, m;
    int  a[4] = { 0 };
    char *name[4] = {"候选人","赵青","钱花","孙瓷"};
    printf("请输入选票(1-赵青,2-钱花,3-孙瓷,0-结束投票):");
    while (scanf("%d",&m)==1 && m != 0 )
    {
        if (m <= 3) a[m]++;
    }
    for (i = 1; i < 4; i++){
        if (a[a[0]] < a[i]) a[0] = i; // 得票最多的位号计入 a[0]
        printf("%s得票数:%d\n",name[i],a[i]);
    }
    printf("%s当选学生会主席!", name[a[0]]);
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7443474
  • 你也可以参考下这篇文章:蓝桥杯真题 15省7-牌型种数 小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,
  • 除此之外, 这篇博客: 全面学习C语言【一】:变量、常量、表达式、判断、注释语法中的 🚩省略花括号 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    if语句也可以没有花括号{}

    比如:

    if (a>b)
    	printf("%d",123);
    

    当没有大括号的时候 紧跟在if后面的那句语句将作为if成立后执行的语句

    同样的 else也可以没有花括号

    比如:

    if (a>b)
    	printf("success");
    else
    	printf("%d",404;
    

    在省略了花括号之后 只有if或else的后面一句语句会生效
    而有了花括号之后 可以执行一个语句块 即多行代码

  • 以下回答来自chatgpt:

    选举人数共100人,候选人姓名为赵青、钱花、孙瓷。

    以下是c语言程序代码:

    #include <stdio.h>
    
    int main()
    {
        int zq_vote = 0, qh_vote = 0, sc_vote = 0; // 分别表示赵青、钱花、孙瓷得票数
        int num_voters = 100; // 选举人数
        int i;
        int vote;
    
        printf("欢迎参加主席选举!\n");
        printf("本次选举共有%d名选民\n", num_voters);
        printf("候选人如下:赵青、钱花、孙瓷\n");
    
        for (i = 1; i <= num_voters; i++)
        {
            printf("第%d位选民,请输入您的选择:1.赵青,2.钱花,3.孙瓷\n", i);
            scanf("%d", &vote);
    
            switch (vote)
            {
            case 1:
                zq_vote++;
                break;
            case 2:
                qh_vote++;
                break;
            case 3:
                sc_vote++;
                break;
            default:
                printf("您的输入有误,请输入1~3中的一个数字\n");
                i--;
                break;
            }
        }
    
        printf("本次选举结果如下:\n");
        printf("赵青得票:%d\n", zq_vote);
        printf("钱花得票:%d\n", qh_vote);
        printf("孙瓷得票:%d\n", sc_vote);
    
        if (zq_vote > qh_vote && zq_vote > sc_vote)
        {
            printf("恭喜赵青当选!\n");
        }
        else if (qh_vote > zq_vote && qh_vote > sc_vote)
        {
            printf("恭喜钱花当选!\n");
        }
        else if (sc_vote > zq_vote && sc_vote > qh_vote)
        {
            printf("恭喜孙瓷当选!\n");
        }
        else
        {
            printf("三位候选人票数相同,本次选举无法产生当选人\n");
        }
    
        return 0;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^