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

day2 数据结构 结构体的应用

思维导图 

小练习:
 

定义一个数组,用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】

1>封装函数 录入5个学生信息

2>封装函数 显示学生信息

3>封装函数 删除第几个学生信息,删除后调用显示学生信息函数 显示

4> 封装函数 按照学生的成绩 进行降序,降序后调用显示学生信息函数 显示

要求:多文件编译完成。

头文件、源文件、测试文件(mian)

源文件:5.c

#include <stdio.h>
#include <string.h>
#include "5.h"//头文件
void sca(struct student stu[],int a)//输入数据
{for(int i=0;i<a;i++){printf("请输入第%d个学生的姓名,性别,年龄,成绩\n",i+1);scanf("%s%s%d%f",stu[i].name,stu[i].sex,&stu[i].age,&stu[i].grdae);}
}
void put(struct student *p,int a)//输出成绩
{for(int j=0;j<a;j++){printf("第%d位学生的姓名为:%s 性别为:%s 年龄为:%d 成绩为:%.1f\n",j+1,(p+j)->name,(p+j)->sex,(p+j)->age,(p+j)->grdae);}
}
void del(struct student stu[],int a,int n)//删除(把需要删除的放到最后,再打印前面的数据)
{for(int i=n-1;i<a-1;i++){stu[i]=stu[i+1];}put(stu,a-1);
}
void swap(struct student stu[],int a)//降序排序
{struct student temp;for(int i=0;i<a;i++){for(int j=0;j<a-1-i;j++){if(stu[j].grdae<stu[j+1].grdae)//冒泡排序{temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}printf("排序后的结果为:\n");put(stu,a-1);
}

头文件:5.h

#ifndef __5__//防止重引用
#define __5__
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#endif 
struct student// 结构体
{char name[30];char sex[10];int age;float grdae;
};void sca(struct student stu[],int a);//输入
void put(struct student *p,int a);//输出
void del(struct student stu[],int a,int n);//删除
void swap(struct student stu[],int a);//排序

 测试文件(mian):6.c

#include <stdio.h>
#include <string.h>
#include"5.h"//引用头文件int main(int argc, const char *argv[])
{printf("请输入学生数量:\n");int a;scanf("%d",&a);struct student stu[a];sca(stu,a);//输入put(stu,a);//输出printf("请输入删除第几位学生 :");int n;scanf("%d",&n);del(stu,a,n);//删除swap(stu,a);//排序return 0;
}

运行截图:

相关文章:

day2 数据结构 结构体的应用

思维导图 小练习&#xff1a; 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学…...

CSS 进阶教程:从定位到动画与布局

文章目录 &#x1f31f; CSS 进阶教程&#xff1a;从定位到动画与布局&#x1f31f; 目录&#x1f31f; 1. 定位**Static&#xff08;默认定位&#xff09;****Relative&#xff08;相对定位&#xff09;****Absolute&#xff08;绝对定位&#xff09;****Fixed&#xff08;固定…...

Nginx性能优化全方案:打造一个高效服务器

Nginx性能优化全方案&#xff1a;打造一个高效服务器 调整工作进程数和线程数调整工作进程数调整线程数 启用Gzip压缩安装Gzip模块配置Gzip压缩 配置缓存策略配置浏览器缓存时间配置代理服务器缓存时间 优化文件访问方式使用sendfile()函数发送文件数据启用sendfile_max_chunk和…...

详解Maven的setting配置文件中mirror和repository的区别

在Maven的setting中&#xff0c;我们常常会用到mirror和repository配置&#xff0c;其中mirror是镜像的意思&#xff0c;而repository则是仓库的意思&#xff0c;它们两者都可以改变maven下载项目以来jar包的地址。 仓库&#xff08;repository&#xff09; repository就是个…...

框架模块说明 #07 API加密

背景 在实际开发过程中&#xff0c;我们通常会涉及到数据加密的问题。本文重点探讨两个方面&#xff1a;一是外部接口调用时的数据加密&#xff0c;二是服务间调用的数据加密与解密。 对于外部接口调用&#xff0c;每个用户将拥有独立的动态 AES 加密密钥&#xff08;KEY&…...

安卓BLE蓝牙开发经验分享

注意点一&#xff1a;一开始必须申请权限&#xff0c;否则后面根本无法成功。 注意点二&#xff1a;BLE使用向某个特征写入来发送数据&#xff0c;写入一次默认长度是23字节&#xff0c;必须向蓝牙设备申请更大字节的写入才能发送更多字节。&#xff08;23字节是BLE通信的最小…...

后缀表达式有什么场景应用

后缀表达式&#xff08;Reverse Polish Notation, RPN&#xff09;在多个领域中有广泛的应用&#xff0c;主要由于其简洁性和易于计算机处理的特点。以下是一些主要的应用场景&#xff1a; ### 1. **编译器和解释器** 后缀表达式在编译器和解释器中用于表达式求值。由于后缀表…...

使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构(未做共享存储版)

文章目录 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构Redis 主从架构部署 (1.yaml)Redis Sentinel 部署 (2.yaml)Sentinel 服务暴露 (3.yaml)部署步骤总结 使用 Kubernetes 部署 Redis 主从及 Sentinel 高可用架构 本文将详细介绍如何在 Kubernetes 中部署 Redis …...

AI开发 - 用GPT写一个GPT应用的真实案例

就在昨天&#xff0c;我的同事推荐给我了一个第三方的公共大模型API&#xff0c;这个API集合了国际上上几乎所有知名的大模型&#xff0c;只需要很少的费用&#xff0c;就可以接入到这些大模型中并使用它们。成本之低&#xff0c;令人乍舌&#xff01;包括我们现在无法试用的 G…...

C#—索引器

C#—索引器 索引器&#xff08;Indexer&#xff09;是类中的一个特殊成员&#xff0c;它能够让对象以类似数组的形式来操作&#xff0c;使程序看起来更为直观&#xff0c;更容易编写。索引器与属性类似&#xff0c;在定义索引器时同样会用到 get 和 set 访问器&#xff0c;不同…...

杨振宁大学物理视频中黄色的字去掉(稳定简洁版本,四)

杨振宁大学物理1214 色带矩形带来很大麻烦&#xff01; 今天想到一个方法&#xff0c;整个色带矩形拉通&#xff0c;做个通铺处理&#xff0c;不计算&#xff0c;代码做最小化&#xff0c;最稳定追求。 因为黄色字稳定&#xff0c;我们找到他的中心&#xff0c;而这个色带矩形…...

排序算法(5):归并排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 归并排序 归并排序采用分治法&#xff0c;将序列分成若干子序列&#xff0c;每个子序列有序后再合并成有序的完整序列。 在数组排序中&#xff0c;如果只有一个数&#xff0c;那么它本身就是有序的。如果有两个数&#xff0…...

Gate学习(7)引入体素源

一、从GitHub下载体素源模型源码 下载地址&#xff1a;BenAuer2021/Phantoms-for-Nuclear-Medicine-Imaging-Simulation&#xff1a;用于核医学成像应用的模型&#xff08;闪烁显像、SPECT 和 PET&#xff09; --- BenAuer2021/Phantoms-For-Nuclear-Medicine-Imaging-Simulat…...

2024.12.14 TCP/IP 网络模型有哪几层?

2024.12.14 TCP/IP 网络模型有哪几层? 2024.12.14 今天周六 看到大伙都在考六级&#xff0c;我来复盘小林coding的计算机网络的知识点&#xff1a; TCP/IP 网络模型有哪几层? 问大家&#xff0c;为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信&#xff0c;有…...

item2 for macos

安装Item2 brew install iterm2 查看终端类型 cat /etc/shells Mac OS X 10.15 已经将默认的shell从Bash换成了zsh&#xff0c;所以不用安装&#xff0c;10.15以前的可以使用下面的命令进行安装 brew install zsh 安装Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…...

二维三维空间上两点之间的距离

二维三维路径上,路径总距离以及途径点与障碍物之间的距离等都需要计算两点之间的距离。两点之间的距离有多种计算方法,这些计算方法主要取决于所考虑的空间维度、点的属性以及具体的应用场景。以下是一些常见的距离计算方法: 1. 曼哈顿距离(Manhattan distance) 定义:也…...

相机测距原理

基础概念的回顾 焦距的定义 焦距是指透镜或镜头的光学中心&#xff08;通常是透镜的几何中心&#xff09;到其焦点的距离。 焦点是光线的交点&#xff0c;它指的是透镜或镜头聚焦所有入射光线后汇聚的位置。焦点的位置与透镜的曲率和光线的入射角度相关。就是说所有光线经过…...

Debezium SchemaNameAdjuster 分析

Debezium SchemaNameAdjuster 分析 目录 1. 概述2. 核心功能3. 实现原理4. 应用场景5. 扩展示例6. 总结1. 概述 SchemaNameAdjuster 是 Debezium 中的一个工具类,主要用于确保 Schema 名称符合 Avro 命名规范。在数据库变更事件被转换为 Kafka 消息时,需要为每个表和字段创…...

Stable Diffusion绘画 | SDXL模型使用注意事项

注意事项 SDXL模型的使用&#xff0c;对电脑配置要求更高&#xff0c;需要 8GB 以上显存的显卡SDXL模型兼容性不太好&#xff0c;容易出现错误&#xff0c;对 Mac 电脑不友好只能选择 SDXL模型 训练的 LoRA 使用不能使用旧的 VAE文件 SDXL 专用 VAE 文件&#xff1a;sdxl_vae.…...

(五)机器学习 - 数据分布

数据分布&#xff08;Data Distribution&#xff09;是指数据在不同值或值区间内的分布情况&#xff0c;它描述了数据点在整个数据集中是如何分散或集中的。数据分布可以通过多种方式来分析和表示&#xff0c;包括图形和数值方法。 常见的数据分布特征和描述数据分布的方法&…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...