2022届计算机学院学生会主席投票选举系统 C语言实现
2022届计算机学院学生会主席投票选举系统 C语言实现
背景: 2022届计算机学院学生会主席投票选举工作即将开始,为了高效便捷地完成投票统计工作,需要开发一个程序来模拟选举过程,并最终输出当选主席的姓名。
程序功能: 该程序使用 C 语言实现,可以接收学生姓名作为投票输入,并统计得票数,最终输出得票最高的候选人姓名。
输入: 本题为单实例测试。输入包含多行,每行是一个由小写英文字母组成的字符串,表示一个姓名,遇到 '*' 时表示输入结束。你可以假定,参加投票学生的人数不超过 200 人,每个学生姓名字符串的长度小于 20。
输出: 输出为一个字符串——当选为学生会主席的学生姓名。
C语言代码:
#include <stdio.h>
#include <string.h>
#define MAX_N 200
#define MAX_LEN 20
int main()
{
char names[MAX_N][MAX_LEN+1]; //存储所有参选者的姓名
int votes[MAX_N]; //存储每个参选者的得票数
int n = 0; //参选者人数
char name[MAX_LEN+1]; //临时存储输入的姓名
//读入参选者姓名
while (scanf('%s', name) == 1) {
if (strcmp(name, '*') == 0) {
break; //输入结束
}
strcpy(names[n], name);
votes[n] = 0; //初始得票数为0
n++;
}
//进行投票
while (scanf('%s', name) == 1) {
if (strcmp(name, '*') == 0) {
break; //投票结束
}
//查找该姓名对应的参选者编号
int i;
for (i = 0; i < n; i++) {
if (strcmp(names[i], name) == 0) {
votes[i]++;
break;
}
}
if (i == n) {
//输入了一个不在参选者名单中的姓名,忽略
}
}
//找出得票最高者
int max_votes = 0;
int max_index = 0;
int i;
for (i = 0; i < n; i++) {
if (votes[i] > max_votes) {
max_votes = votes[i];
max_index = i;
}
}
//输出当选者的姓名
printf('%s\n', names[max_index]);
return 0;
}
代码解析:
- 程序首先定义了两个数组:
names用于存储所有参选者的姓名,votes用于存储每个参选者的得票数。 - 程序通过循环读取输入的姓名,并将每个姓名存储到
names数组中,并初始化对应的votes为 0。 - 当遇到 '*' 时,表示输入结束,程序进入投票阶段。
- 在投票阶段,程序再次循环读取输入的姓名,并查找该姓名对应的参选者编号。如果找到,则将该参选者的得票数加 1。
- 循环结束后,程序遍历
votes数组,找到得票最高的候选者,并输出该候选者的姓名。
程序使用方法:
- 将以上代码保存为一个名为
election.c的文件。 - 使用 C 语言编译器编译该文件,生成可执行文件。
- 运行可执行文件,并按照提示输入参选者姓名和投票信息。
- 程序将输出得票最高的候选人姓名。
示例输入:
张三
李四
王五
*
张三
王五
李四
张三
*
示例输出:
张三
总结: 该程序模拟了学生会主席投票选举的过程,并使用 C 语言实现了统计得票数的功能,最终输出得票最高的候选人姓名。程序简洁易懂,易于实现,可以帮助学生会主席选举工作更加高效便捷。
原文地址: https://www.cveoy.top/t/topic/ojKc 著作权归作者所有。请勿转载和采集!