7-3 投票统计 武汉理工大学C语言

这篇具有很好参考价值的文章主要介绍了7-3 投票统计 武汉理工大学C语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

7-3 投票统计
分数 15
作者 TracyLi
单位 成都信息工程大学
用程序模拟一个活动的投票统计功能。首先输入参选人员个数,再输入每位参选人员名字(不超过20字节),再输入选票张数,再依次输入选票中所选的参选人名(选票中必须选参选中的其中一位)。在输入选票过程中统计每位参选人的得票数,最终按得票数由高到低的顺序输出参选人和其票数(空格分隔),如果票数相同,则按名字从小到大的顺序(ASCII码顺序)输出。
提示:选票信息按如下结构定义:

struct vote
{
char name[20];//名字
int count;//票数
};
输入样例:
3
Li
Wang
Zhang
8
Li
Wang
Li
Zhang
Li
Li
Wang
Zhang
输出样例:
Li 4
Wang 2
Zhang 2文章来源地址https://www.toymoban.com/news/detail-811684.html

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct Vote {
    char name[20];
    int count;
};

int compare_votes(const void *a, const void *b) {
    const struct Vote *vote_a = (const struct Vote *)a;
    const struct Vote *vote_b = (const struct Vote *)b;
    
    if (vote_a->count == vote_b->count) {
        return strcmp(vote_a->name, vote_b->name);
    }
    return vote_b->count - vote_a->count;
}

int main() {
    int num_candidates, num_votes;
    scanf("%d", &num_candidates);
    
    struct Vote *candidates = (struct Vote *)malloc(num_candidates * sizeof(struct Vote));
    for (int i = 0; i < num_candidates; i++) {
        scanf("%s", candidates[i].name);
        candidates[i].count = 0;
    }

    scanf("%d", &num_votes);

    for (int i = 0; i < num_votes; i++) {
        char selected_name[20];
        scanf("%s", selected_name);
        for (int j = 0; j < num_candidates; j++) {
            if (strcmp(selected_name, candidates[j].name) == 0) {
                candidates[j].count++;
                break;
            }
        }
    }

    qsort(candidates, num_candidates, sizeof(struct Vote), compare_votes);

    for (int i = 0; i < num_candidates; i++) {
        printf("%s %d\n", candidates[i].name, candidates[i].count);
    }

    free(candidates);
    return 0;
}

到了这里,关于7-3 投票统计 武汉理工大学C语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 成都理工大学_Python程序设计_Python程序设计期末模拟试题

    ‌下列变量名中,哪一项不符合正确的变量命名规则?( ) 2_year ‍Python不支持的数据类型有( )。 char ​从键盘输入一个整数赋值给number,下面哪一句是正确的?( ) number = int(input(‘请输入一个整数:’)) 令list = [1, 2, 3],则分别执行命令del list[1]和list.remove(1)后的list为(

    2024年02月08日
    浏览(47)
  • 基于微信上海某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月19日
    浏览(44)
  • 基于微信山东济南某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月01日
    浏览(75)
  • 基于微信河南郑州某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月23日
    浏览(42)
  • 基于微信山西太原某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月02日
    浏览(47)
  • 基于微信陕西西安某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月18日
    浏览(48)
  • 基于微信江苏南京某大学评选投票小程序系统设计与实现 研究背景和意义、国内外现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月23日
    浏览(48)
  • GNSS数据下载软件 -- 武汉大学 Fast软件(体验感极佳~)

    一、简介与下载地址 1.介绍 2.软件特点 3.下载地址 4.以github下载链接为例 二、下载方法(三种方法,以windows系统为例) 1.双击\\\"Fast.exe\\\"根据提示引导下载 2.手动输入\\\"cmd\\\"进入命令行界面,通过输入相关命令进行下载 3.通过可视化QT程序来继续下载 三、可支持下载的数据类型 针对

    2024年01月18日
    浏览(45)
  • 山东理工大学单元测试2重现

    本次单元测试虽然较第一次机测难度增加,但整体难度与平时pta练习相比,难度并不大,一些细节同学们在考试时容易忽略,本次八道题,可关注第四题的简便公式,以及第七题的注意事项和第八题运行超时的解决办法。 7-1 sdut-C语言实验-A+B for Input-Output Practice (不确定次数循

    2024年02月05日
    浏览(47)
  • 操作系统实验报告【太原理工大学】

    温馨提示:仅供参考! 1.程序清单 2.运行结果 ① 简单轮转法: ② 优先数法 3.分析总结 此实验运用了俩种方法进行了程序的调度。在简单轮转方法中,本程序代码中timesch函数下的重要性用priority表示,使用priority次数用尽后,继续执行下一个进程,在进程都结束后,占用cp

    2024年02月06日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包