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

结构体数组经典运用---选票系统

结构体的引入

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、概念&#xff1a;结构体和其他类型基础数据类型一样&#xff0c;例如int类型&#xff0c;char类型&#xff0c;float类型等。整型数&#xff0c;浮点型数&#xff0c;字符串是分散的数据表示&#xff0c;有时候我们需要用很多类型的数据来表示一个整体&#x…...

code too large

描述&#xff1a;比较尴尬&#xff0c;一个方法的代码接近10000行了&#xff0c;部署服务器的时候提示(java :code[255,21] too large),提示代码过长&#xff0c;无法运行。 查看了一下百度&#xff1a;解决的思路 JVM规范&#xff1a;「类或接口可以声明的字段数量限制在 655…...

vue中把弹出层.vue文件注册成组件供其他.vue文件调用的写法

背景&#xff1a;因弹出层多个页面的详情都是一样的&#xff0c;因此把弹出层定义成组件&#xff0c;多次调用 定义组件的过程中出现很多问题&#xff0c;因此再次记录最终成功的写法 一、 简单实现页面调用弹出层组件的打开弹出层方法&#xff1a; 1. 弹出层组件 (in…...

mac 查看GPU使用

首先搜索活动监视器 然后 点击窗口->gpu历史记录 记住不是立马出结果&#xff0c;而是 需要等半分钟左右的...

工业4.0的安全挑战与解决方案

在当今数字化时代&#xff0c;工业4.0已经成为制造业的核心趋势。工业4.0的兴起为生产企业带来了前所未有的效率和灵活性&#xff0c;但与之伴随而来的是一系列的安全挑战。本文将深入探讨工业4.0的安全挑战&#xff0c;并提供一些解决方案&#xff0c;以确保制造业的数字化转型…...

如何查找特定基因集合免疫基因集 炎症基因集

温故而知新&#xff0c;再次看下Msigdb数据库。它更新了很多内容。给我们提供了一个查询基因集的地方。 关注微信&#xff1a;生信小博士 比如纤维化基因集&#xff1a; 打开网址&#xff1a;https://www.gsea-msigdb.org/gsea/msigdb/index.jsp 2.点击search 3.比如我对纤维…...

轮转数组(Java)

大家好我是苏麟 , 这篇文章是凑数的 ... 轮转数组 描述 : 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 题目 : 牛客 NC110 旋转数组: 这里牛客给出了数组长度我们直接用就可以了 . LeetCode 189.轮转数组 : 189. 轮…...

Spring体系结构

Spring体系结构 核心容器 核心容器由 spring-core&#xff0c;spring-beans&#xff0c;spring-context&#xff0c;spring-context-support和spring-expression&#xff08;SpEL&#xff0c;Spring 表达式语言&#xff0c;Spring Expression Language&#xff09;等模块组成&…...

PostgreSQL basebackup备份和恢复

一、概述 备份和恢复分为逻辑和物理&#xff0c;这里指物理备份和恢复。 PG的物理备份依赖basebackup&#xff0c;这差不多就是数据目录的拷贝&#xff0c;还依赖归档日志。 恢复分为完全恢复和PITR恢复&#xff0c;它们都需要归档日志&#xff0c;它们关键的差别是&#xf…...

XTU-OJ 1248-Alice and Bob

Alice和Bob在玩骰子游戏&#xff0c;他们用三颗六面的骰子&#xff0c;游戏规则如下&#xff1a; 点数的优先级是1点最大&#xff0c;其次是6,5,4,3,2。三个骰子点数相同&#xff0c;称为"豹子"&#xff0c;豹子之间按点数优先级比较大小。如果只有两个骰子点数相同&…...

第四章 文件管理 十、文件系统的全局结构

目录 一、文件系统的建立 1、原始磁盘 2、物理格式化后 3、逻辑格式化后 二、文件系统在内存中的结构 三、系统调用背后的过程 一、文件系统的建立 1、原始磁盘 2、物理格式化后 物理格式化&#xff0c;即低级格式化――划分扇区&#xff0c;检测坏扇区&#xff0c;并用…...

【PythonGIS】基于高德Api实现批量地址查询经纬度

之前因为同事需要几千个小区的经纬度信息&#xff0c;所以就帮同事写了一段Python代码&#xff0c;通过调取高德地图的api实现地址查询经纬度这个功能。对于如何使用经纬度查询地址的方法&#xff0c;我之前分享过博文&#xff1a;【Python入门教程】获取图片可视化精准定位&am…...

vue数组中的变更方法和替换方法

变更方法&#xff1a; Vue 能够侦听响应式数组的变更方法&#xff0c;并在它们被调用时触发相关的更新。这些变更方法包括: push&#xff08;&#xff09;:在数组末尾添加一个或者多个元素&#xff0c;返回新的长度。 var arr [1, 2, 3, 4, 5]; // 定义一个数组 arr.push(6…...

Java - 工具类参数初始化

在做第三方接口调用时&#xff0c;经常需要根据不同的环境指定初始化的参数。以下做一个简单的记录。 一、使用static初始化 使用static初始化&#xff0c;仅会初始化一次&#xff0c;但无法从配置文件中获取参数。并且如果写了多个初始化工具类&#xff0c;会互相覆盖。 /**…...

一文搞懂 MineCraft 服务器启动操作和常见问题 2023年10月

文章目录 前言1. 新建文件夹2. 创建 bat 文件3. 编辑 bat 文件4. 启动服务器5. 恭喜完成 文章持续更新中&#xff0c;如果你有问题可以通过 qq 1317699264 获取免费协助&#xff0c;解决的问题将会被更新到本文章中 前言 无论你是使用服务端整合包&#xff0c;还是从上一篇我的…...

第2篇 机器学习基础 —(2)分类和回归

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别&#xff0c;而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别&#xff0c;而回归问题输出的是数值。本节课就…...

Java游戏修炼手册:2023 最新学习线路图

前言 有没有一种令人兴奋的学习方法&#xff1f;当然有&#xff01;绝对有&#xff01;而且我要告诉你&#xff0c;学习的快乐可以媲美游戏的刺激。 小学时代&#xff0c;我曾深陷于一款名为"八百万勇士的梦"的游戏。每当放学&#xff0c;我总是迫不及待地打开电脑&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商品数据接口调用爬虫实战

随着互联网的发展&#xff0c;越来越多的商家开始将自己的商品数据通过API接口对外开放&#xff0c;以供其他开发者使用。这些API接口可以提供丰富的商品数据&#xff0c;包括商品名称、价格、库存、图片等信息。对于爬虫开发者来说&#xff0c;通过调用这些API接口&#xff0c…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...