结构体数组经典运用---选票系统
结构体的引入
1、概念:结构体和其他类型基础数据类型一样,例如int类型,char类型,float类型等。整型数,浮点型数,字符串是分散的数据表示,有时候我们需要用很多类型的数据来表示一个整体,比如学生信息。类比与数组: 数组是元素类型一样的数据集合,如果是元素类型不同的数据集合,就要用到结构体了。结构体可以让不同数据类型同时存在,将不同类型的数据存放在一起,作为一个整体进行处理。
2、声明方式:在主函数外以,首先使用一个关键字struct,使其接下来表示一个结构体;其次后面跟着一个名称(名称可随意定义),为此来创建数据对象。(结尾记得加分号,不然会报错)
3、使用方式:在主函数内,用标准结构struct+主函数外定义的名称+任意名称(这里的名称是分类出数值不同的角色),给结构体赋值是任意名称.数据对象(这里的点运算符来访问结构体中的成员变量(域));也可以直接在标准结构struct+主函数外定义的名称+任意名称后加上花括号并对应数据对象进行赋值。
我们以列举学生信息为例展示代码:
#include <stdio.h>
#include <string.h>struct Student
{int num;char name[64];int age;double sorce;char add[64];
};int main()
{struct Student stu1;struct Student stu2={2,"张三",22,100,"北京"};stu1.num=1;//点运算符来访问结构体中的成员变量(域)strcpy(stu1.name,"李四");stu1.age=20;stu1.sorce=99;strcpy(stu1.add,"深圳");printf("序号是%d,名字是%s,年龄是%d,分数是%lf,住址是%s\n",stu1.num,stu1.name,stu1.age,stu1.sorce,stu1.add);printf("序号是%d,名字是%s,年龄是%d,分数是%lf,住址是%s\n",stu2.num,stu2.name,stu2.age,stu2.sorce,stu2.add);if(stu1.sorce>stu2.sorce){printf("成绩较高的是%d号%s\n",stu1.num,stu1.name);}else{printf("成绩较高的是%d号%s\n",stu2.num,stu2.name);}return 0;
}

结构体与数组结合经典运用---选票系统
代码展示
#include <stdio.h>
#include <string.h>struct XuanMin
{char name[64];int tickets;
};int main()
{struct XuanMin a[3];//三位选手struct XuanMin max;//比较三位选手得票最大值int number = 5;//5个人参与投票char tempname[64];//投票的名字int feipiao = 0;//没选中的票int i;int j;int c = 0;//一个判断逻辑int len = sizeof(a)/sizeof(a[0]);for(i = 0;i < len;i++){a[i].tickets = 0;printf("请输入第%d个选民的名字:\n",i+1);scanf("%s",a[i].name);}for(i = 0;i < 5;i++){c = 0;//每次循环让其等于0printf("请输入你要投给谁\n");memset(tempname,'\0',sizeof(tempname));//每次清空一下scanf("%s",tempname);//输入选中的选民for(j = 0;j < len;j++){if(strcmp(tempname,a[j].name)==0)//选民与选手匹配,票数递增{a[j].tickets++;c = 1;//如果匹配后票数增加并等于1}}if(c == 0)//还是为0说明没有匹配选手,则为没选中的票{printf("没有此选手,投票失败\n");feipiao++;}}for(i = 0;i < len;i++){printf("名字:%s,票数:%d\n",a[i].name,a[i].tickets);}max=a[0];//让最大值先等于第一个人for(i = 1;i < len ;i++){if(max.tickets < a[i].tickets){max = a[i];//将三个人票数最多的赋给最大值}}printf("%s以%d票当选!!!废票是%d\n",max.name,max.tickets,feipiao);return 0;
}

相关文章:
结构体数组经典运用---选票系统
结构体的引入 1、概念:结构体和其他类型基础数据类型一样,例如int类型,char类型,float类型等。整型数,浮点型数,字符串是分散的数据表示,有时候我们需要用很多类型的数据来表示一个整体&#x…...
code too large
描述:比较尴尬,一个方法的代码接近10000行了,部署服务器的时候提示(java :code[255,21] too large),提示代码过长,无法运行。 查看了一下百度:解决的思路 JVM规范:「类或接口可以声明的字段数量限制在 655…...
vue中把弹出层.vue文件注册成组件供其他.vue文件调用的写法
背景:因弹出层多个页面的详情都是一样的,因此把弹出层定义成组件,多次调用 定义组件的过程中出现很多问题,因此再次记录最终成功的写法 一、 简单实现页面调用弹出层组件的打开弹出层方法: 1. 弹出层组件 (in…...
mac 查看GPU使用
首先搜索活动监视器 然后 点击窗口->gpu历史记录 记住不是立马出结果,而是 需要等半分钟左右的...
工业4.0的安全挑战与解决方案
在当今数字化时代,工业4.0已经成为制造业的核心趋势。工业4.0的兴起为生产企业带来了前所未有的效率和灵活性,但与之伴随而来的是一系列的安全挑战。本文将深入探讨工业4.0的安全挑战,并提供一些解决方案,以确保制造业的数字化转型…...
如何查找特定基因集合免疫基因集 炎症基因集
温故而知新,再次看下Msigdb数据库。它更新了很多内容。给我们提供了一个查询基因集的地方。 关注微信:生信小博士 比如纤维化基因集: 打开网址:https://www.gsea-msigdb.org/gsea/msigdb/index.jsp 2.点击search 3.比如我对纤维…...
轮转数组(Java)
大家好我是苏麟 , 这篇文章是凑数的 ... 轮转数组 描述 : 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 题目 : 牛客 NC110 旋转数组: 这里牛客给出了数组长度我们直接用就可以了 . LeetCode 189.轮转数组 : 189. 轮…...
Spring体系结构
Spring体系结构 核心容器 核心容器由 spring-core,spring-beans,spring-context,spring-context-support和spring-expression(SpEL,Spring 表达式语言,Spring Expression Language)等模块组成&…...
PostgreSQL basebackup备份和恢复
一、概述 备份和恢复分为逻辑和物理,这里指物理备份和恢复。 PG的物理备份依赖basebackup,这差不多就是数据目录的拷贝,还依赖归档日志。 恢复分为完全恢复和PITR恢复,它们都需要归档日志,它们关键的差别是…...
XTU-OJ 1248-Alice and Bob
Alice和Bob在玩骰子游戏,他们用三颗六面的骰子,游戏规则如下: 点数的优先级是1点最大,其次是6,5,4,3,2。三个骰子点数相同,称为"豹子",豹子之间按点数优先级比较大小。如果只有两个骰子点数相同&…...
第四章 文件管理 十、文件系统的全局结构
目录 一、文件系统的建立 1、原始磁盘 2、物理格式化后 3、逻辑格式化后 二、文件系统在内存中的结构 三、系统调用背后的过程 一、文件系统的建立 1、原始磁盘 2、物理格式化后 物理格式化,即低级格式化――划分扇区,检测坏扇区,并用…...
【PythonGIS】基于高德Api实现批量地址查询经纬度
之前因为同事需要几千个小区的经纬度信息,所以就帮同事写了一段Python代码,通过调取高德地图的api实现地址查询经纬度这个功能。对于如何使用经纬度查询地址的方法,我之前分享过博文:【Python入门教程】获取图片可视化精准定位&am…...
vue数组中的变更方法和替换方法
变更方法: Vue 能够侦听响应式数组的变更方法,并在它们被调用时触发相关的更新。这些变更方法包括: push():在数组末尾添加一个或者多个元素,返回新的长度。 var arr [1, 2, 3, 4, 5]; // 定义一个数组 arr.push(6…...
Java - 工具类参数初始化
在做第三方接口调用时,经常需要根据不同的环境指定初始化的参数。以下做一个简单的记录。 一、使用static初始化 使用static初始化,仅会初始化一次,但无法从配置文件中获取参数。并且如果写了多个初始化工具类,会互相覆盖。 /**…...
一文搞懂 MineCraft 服务器启动操作和常见问题 2023年10月
文章目录 前言1. 新建文件夹2. 创建 bat 文件3. 编辑 bat 文件4. 启动服务器5. 恭喜完成 文章持续更新中,如果你有问题可以通过 qq 1317699264 获取免费协助,解决的问题将会被更新到本文章中 前言 无论你是使用服务端整合包,还是从上一篇我的…...
第2篇 机器学习基础 —(2)分类和回归
前言:Hello大家好,我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别,而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别,而回归问题输出的是数值。本节课就…...
Java游戏修炼手册:2023 最新学习线路图
前言 有没有一种令人兴奋的学习方法?当然有!绝对有!而且我要告诉你,学习的快乐可以媲美游戏的刺激。 小学时代,我曾深陷于一款名为"八百万勇士的梦"的游戏。每当放学,我总是迫不及待地打开电脑&a…...
前端访问geoserver服务发生跨域的解决办法,以及利用html2canvas下载绘制的地图
我的业务场景: 需要利用html2canvas下载Openlayers绘制的地图。 预期:可以下载成图片甚至其他格式(svg)文件。 结果:下载下来是个空白图片。 排查错误:请求数据正常回显到页面上,利用html2canvas截取的时候会发生跨域,导致无法绘制。 首先处理tomcat跨域问题 第一步…...
Word docx转html和markdown
Pypandoc使用pandoc来进行各种文本格式的转换。 安装 # 不带pandoc执行库 pip install pypandoc# 自带pandoc pip install pypandoc_binary使用 import pypandoc# convert all markdown files in a chapters/ subdirectory. pypandoc.convert_file(chapters/*.md, docx, out…...
API商品数据接口调用爬虫实战
随着互联网的发展,越来越多的商家开始将自己的商品数据通过API接口对外开放,以供其他开发者使用。这些API接口可以提供丰富的商品数据,包括商品名称、价格、库存、图片等信息。对于爬虫开发者来说,通过调用这些API接口,…...
无机布防火卷帘门报价透明,包工包料,一次说清所有费用
很多客户在选购无机布防火卷帘门时,最关心实际成交价格,也担心报价不清晰,后期产生各类额外支出。行业内产品定价参差不齐,选材做工不同,最终价位自然存在差距,挑选时不能只看表面低价。 👉 点击…...
Rydberg原子量子门实现原理与优化技术
1. Rydberg原子平台中的量子门实现基础1.1 Rydberg原子特性与量子计算优势Rydberg原子是指外层电子被激发到高主量子数能级的原子态,这类原子具有三个关键特性使其成为量子计算的理想平台:强偶极-偶极相互作用:当两个原子同时处于Rydberg态时…...
收藏必看|2026 版大厂 AI 岗位薪资曝光!普通程序员转型大模型最全指南
深夜收到大厂 HR 好友发来的内部资料,再三叮嘱切勿对外泄露。如今网络信息传播速度极快,这份 2026 年企业 AI 岗真实薪资内幕,也值得给广大程序员、零基础入行小白参考借鉴。 翻看完整薪资台账后,真切感受到当下大模型赛道的薪资差…...
全链路压测实战:双十一级别的流量,我是这样扛住的
作为一名在质量保障领域摸爬滚打多年的测试工程师,我深知传统的单接口压测在如今分布式架构下的无力感。当业务流量达到双十一这种脉冲式、高并发的级别时,任何一个非核心链路上的“短板”都可能引发系统性的雪崩。全链路压测不再是选择题,而…...
Mysql:事务管理(中)
在前面的章节中,我们提到了 MVCC(多版本并发控制),它巧妙地通过“版本快照”解决了“读-写”冲突,实现了非阻塞读。但如果两个事务同时执行 UPDATE 操作修改同一行数据,即 写-写(Write-Write&am…...
WebSocket实时通信架构进阶:Room、命名空间与集群部署
WebSocket实时通信架构进阶:Room、命名空间与集群部署 作者:Crown_22 | AI Agent & Hermes Agent 桌面程序开发者 前言 WebSocket已经成为实时应用的标准技术,但大多数教程只停留在"建立连接、发送消息"的基础阶段。在生产环境中,你需要处理Room管理、命名空…...
终极免费音乐解锁工具:打破平台枷锁,让音乐重获自由
终极免费音乐解锁工具:打破平台枷锁,让音乐重获自由 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地…...
超低功耗电池电压监控电路设计:从LM324到LPV324的硬件方案优化
1. 项目概述与核心需求解析在捣鼓各种电池供电的电子设备时,无论是自己做的无线传感器节点、便携式小工具,还是给孩子改装的玩具,有一个问题总是绕不开:你怎么知道电池快没电了?总不能每次都等到设备彻底罢工ÿ…...
通过TaotokenCLI工具一键配置开发环境接入参数
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置开发环境接入参数 对于需要接入多个大模型服务的开发者而言,手动配置每个项目的API密钥、…...
NHSE终极教程:5分钟掌握动物森友会存档编辑技巧
NHSE终极教程:5分钟掌握动物森友会存档编辑技巧 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 还在为《集合啦!动物森友会》的收集烦恼吗?想快速打造梦想岛屿却…...
