结构体应用 C语言

题目描述

有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名

字,最后输出各人得票结果。

解题思路

设一个结构体数组,数组中包含3个元素;

每个元素中的信息应包括候选人的姓名和得票数;

输入被选人的姓名,然后与数组元素中的"姓名"成员比较,如果相同,就给这个元素中的"得票数"成

员的值加1;

输出所有元素的信息。

代码实现

cs 复制代码
struct Person //定义候选人
{
char name[20];//姓名
int count; //票数
};
void Ticket(struct Person* p, int len)//计票程序
{
char name[20]; //保存投票的数据
for (int i = 0; i < 5; i++)//模拟5个选民
{
scanf("%s", name); //读取选票
for (int j = 0; j < len; j++)//和候选人比较
{
if (strcmp(name, p[j].name) == 0)
{
p[j].count++;//选票加1
break;//匹配成功,不需要再和后面的候选人匹配
}
}
}
}
void Show(const struct Person* p, int len)//输出程序
{
for (int i = 0; i < len; i++)
{
printf("姓名:%s,票数:%d\n", (p + i)->name, (p + i)->count);
}
}
int main()
{
struct Person leader[3] = { "曹操",0,"刘备",0,"孙权",0 };
Ticket(leader, sizeof(leader) / sizeof(leader[0]));
Show(leader, sizeof(leader) / sizeof(leader[0]));
return 0;
}
相关推荐
小莞尔9 小时前
【51单片机】【protues仿真】基于51单片机的篮球计时计分器系统
c语言·stm32·单片机·嵌入式硬件·51单片机
小莞尔9 小时前
【51单片机】【protues仿真】 基于51单片机八路抢答器系统
c语言·开发语言·单片机·嵌入式硬件·51单片机
liujing102329299 小时前
Day03_刷题niuke20250915
c语言
第七序章12 小时前
【C++STL】list的详细用法和底层实现
c语言·c++·自然语言处理·list
l1t13 小时前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
l1t15 小时前
利用美团龙猫用libxml2编写XML转CSV文件C程序
xml·c语言·libxml2·解析器
Gu_shiwww21 小时前
数据结构8——双向链表
c语言·数据结构·python·链表·小白初步
你怎么知道我是队长1 天前
C语言---循环结构
c语言·开发语言·算法
程序猿编码1 天前
基于 Linux 内核模块的字符设备 FIFO 驱动设计与实现解析(C/C++代码实现)
linux·c语言·c++·内核模块·fifo·字符设备
mark-puls1 天前
C语言打印爱心
c语言·开发语言·算法