当前位置: 首页 > news >正文

水作业.2

用程序模拟一个活动的投票统计功能。首先输入参选人员个数,再输入每位参选人员名字(不超过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

#include <iostream>
#include <cstring>
using namespace std;

struct vote {
char name[20];
int count = 0; // 直接初始化为0
};

int main() {
int n, m;
cin >> n;

vote candidates[100];

// 输入候选人
for (int i = 0; i < n; i++) {
cin >> candidates[i].name;
}

cin >> m;

// 统计选票
for (int i = 0; i < m; i++) {
char name[20];
cin >> name;

// 查找这个人
for (int j = 0; j < n; j++) {
if (strcmp(candidates[j].name, name) == 0) {
candidates[j].count++;
break;
}
}
}

// 简单排序(冒泡排序)
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
// 先比较票数
if (candidates[j].count < candidates[j + 1].count) {
// 交换两个候选人
vote temp = candidates[j];
candidates[j] = candidates[j + 1];
candidates[j + 1] = temp;
}
// 如果票数相同,比较名字
else if (candidates[j].count == candidates[j + 1].count) {
if (strcmp(candidates[j].name, candidates[j + 1].name) > 0) {
vote temp = candidates[j];
candidates[j] = candidates[j + 1];
candidates[j + 1] = temp;
}
}
}
}

// 输出结果
for (int i = 0; i < n; i++) {
cout << candidates[i].name << " " << candidates[i].count << endl;
}

return 0;
}

http://www.gsyq.cn/news/132719.html

相关文章:

  • 基于Spring Boot的流浪动物救助平台的设计与实现毕业设计
  • AOP技术
  • vim 十六进制显示模式
  • 3.3
  • CordovaOpenHarmony使用指南文档
  • 3.5
  • CF1088E Ehab and a component choosing problem
  • 如何在 Power BI 中基于多个列应用 RLS
  • 大语言模型作为游戏引擎:是炒作还是革命?
  • 3.8
  • 项目审批管理系统测评:6款助力流程化审批与规范化管理的实用方案
  • EE308FZ_Fifth Assignment_Alpha Sprint_Sprint Essay2
  • 碎片化学习:DeepSeek 定制个人技术成长计划与知识点拆解
  • 【Linux命令大全】001.文件管理之diff命令(实操篇)
  • JAVA|文件管理系统 V3.0
  • 【计算机毕业设计案例】基于springboot的养宠物指南服务平台系统的设计与实现宠物养护全周期的知识服务与社群互动设计系统(程序+文档+讲解+定制)
  • 创建目标模块 Cordova 与 OpenHarmony 混合开发实战
  • 个人财务管理工具 HomeBank v5.9.6 中文便携版
  • 进度跟踪模块 Cordova 与 OpenHarmony 混合开发实战
  • 真正影响孩子视力的元凶曝光,不是手机,而是这个日常习惯!
  • FreeFileSync (文件夹比较同步) v14.6
  • 家长必看,别等孩子近视了,再看到这篇文章!
  • 谷歌Gemini更新:手写编辑图片及识别AI视频功能详解
  • Dify+Ollama简单部署使用本地大模型平台
  • 瘫痪工程师成为首位乘坐轮椅进入太空的人
  • 【URP】Unity[置换贴图]原理与实践
  • 2025年终AI大模型对决:Gemini 3 Flash vs GPT-5.2 vs Claude 4.5 全方位评测
  • 使用 Flutter 构建跨平台应用:入门与实战
  • PPT-三维立体人物效果
  • 9151 NTN 通信关键技术点