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;
}

运行截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

五、网络层:控制平面,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》

目录 一、导论 二、路由选择算法 2.1 路由&#xff08;route&#xff09;的概念 2.2 网络的图抽象 2.2.1 边和路由的代价 2.2.2 最优化原则 2.3 路由的原则 2.4 路由选择算法的分类 2.5 link state 算法 2.5.1 LS路由工作过程 2.5.2 链路状态路由选择&#xff08;lin…

内网是如何访问到互联网(H3C源NAT)

H3C设备NAPT配置 直接打开29篇的拓扑&#xff0c;之前都配置好了 「模拟器、工具合集」复制整段内容 链接&#xff1a;https://docs.qq.com/sheet/DV0xxTmFDRFVoY1dQ?tab7ulgil 现在是出口路由器可以直接访问61.128.1.1&#xff0c;下面的终端访问不了&#xff0c;需要做NAPT源…

生产者-消费者模型

目录 生产者-消费者模型介绍 生产者-消费者模型优点 生产者-消费者之间的关系 基于阻塞队列实现生产者-消费者模型 基于环形队列实现生产者-消费者模型 生产者-消费者模型介绍 ● 计算机中的生产者和消费者本质都是线程/进程 ● 生产者和消费者不直接通讯&#xff0c;而是…

.NET6 WebAPI从基础到进阶--朝夕教育

1、环境准备 1. Visual Studio 2022 2. .NET6 平台支持 3. Internet Information Services 服务器&#xff08; IIS &#xff09; 4. Linux 服务器 【 CentOS 系统】 ( 跨平台部署使用 ) 5. Linux 服务器下的 Docker 容器&#xff08; Docker 部署使用&#xff09; …

Linux系统中进程的概念 -- 冯诺依曼体系结构,操作系统,进程概念,查看进程,进程状态,僵尸进程,孤儿进程,进程优先级,进程切换,进程调度

目录 1. 冯诺依曼体系结构 2. 操作系统(Operator System) 2.1 操作系统的概念 2.2 设计操作系统(OS)的目的 2.3 系统调用和库函数概念 3. 进程 3.1 进程的基本概念与基本操作 3.1.1 进程的基本概念 3.1.2 PCB -- 描述进程 3.1.3 task_ struct 3.1.4 查看进程 3.1.5…

4.redis通用命令

文章目录 1.使用官网文档2.redis通用命令2.1set2.2get2.3.redis全局命令2.3.1 keys 2.4 exists2.5 del(delete)2.6 expire - (失效时间)2.7 ttl - 过期时间2.7.1 redis中key的过期策略2.7.2redis定时器的实现原理 2.8 type2.9 object 3.生产环境4.常用的数据结构4.1认识数据类型…

Web项目图片视频加载缓慢/首屏加载白屏

Web项目图片视频加载缓慢/首屏加载白屏 文章目录 Web项目图片视频加载缓慢/首屏加载白屏一、原因二、 解决方案2.1、 图片和视频的优化2.1.1、压缩图片或视频2.1.2、 选择合适的图片或视频格式2.1.3、 使用图片或视频 CDN 加速2.1.4、Nginx中开启gzip 三、压缩工具推荐 一、原因…

成人教育专升本-不能盲目选择

成人教育专升本都有哪些方法?在当今时代&#xff0c;学历往往是打开职业机会的敲门砖&#xff0c;成人教育专升本成为突破职业发展瓶颈的途径&#xff0c;然而&#xff0c;你是否清楚它们之间究竟有着怎样的区别呢? 一、成人教育专升本&#xff0c;成人高考 1、考试形式 成人…

repmgr集群部署-PostgreSQL高可用保证

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验&#xff0c; Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、My…

【前端】 canvas画图

一、场景描述 利用js中的canvas画图来画图&#xff0c;爱心、动画。 二、问题拆解 第一个是&#xff1a;canvas画图相关知识。 第二个是&#xff1a;动画相关内容。 三、知识背景 3.1 canvas画图相关内容 canvas画图的基本步骤 获取页面上的canvas标签对象获取绘图上下文…

深度学习——激活函数、损失函数、优化器

深度学习——激活函数、损失函数、优化器 1、激活函数1.1、一些常见的激活函数1.1.1、sigmoid1.1.2、softmax1.1.3、tanh1.1.4、ReLU1.1.5、Leaky ReLU1.1.6、PReLU1.1.7、GeLU1.1.8、ELU 1.2、激活函数的特点1.2.1、非线性1.2.2、几乎处处可微1.2.3、计算简单1.2.4、非饱和性1…

硬件设计-电源轨噪声对时钟抖动的影响

目录 定义 实际案例 总结 定义 首先了解抖动的定义&#xff0c;在ITU-T G.701中有关抖动的定义如下&#xff1a; 数字信号重要瞬间相对于其理想时间位置的短期非累积变化。 抖动是时钟或数据信号时序的短期时域变化。抖动包括信号周期、频率、相位、占空比或其他一些定时特…

搭建自己的wiki知识库(重新整理)

写在前面&#xff1a; 之前写过一篇&#xff0c;因为这次修改的内容比较多&#xff0c;所以不想在原基础上修改了&#xff0c;还是重新整理一篇吧。搭建wiki知识库&#xff0c;可以使用在线文档&#xff0c;如xx笔记、xx文档、xx博客、git仓库&#xff08;如&#xff1a;GitHu…

数据可视化的Python实现

一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的&#xff0c;识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件&#xff0c;GDELT 为全…

【Python基础】Python知识库更新中。。。。

1、Python知识库简介 现阶段主要源于个人对 Python 编程世界的强烈兴趣探索&#xff0c;在深入钻研 Python 核心语法、丰富库函数应用以及多样化编程范式的基础上&#xff0c;逐步向外拓展延伸&#xff0c;深度挖掘其在数据分析、人工智能、网络开发等多个前沿领域的应用潜力&…

SpringCloud微服务实战系列:02从nacos-client源码分析注册中心工作原理

目录 角色与功能 工作流程&#xff1a; nacos-client关键源码分析 总结&#xff1a; 角色与功能 服务提供者&#xff1a;在启动时&#xff0c;向注册中心注册自身服务&#xff0c;并向注册中心定期发送心跳汇报存活状态。 服务消费者&#xff1a;在启动时&#xff0c;把注…

电感2222

1 电感 1电感是什么 2 电感的电流不能突变&#xff1a;电容是两端电压不能突变 3 电感只是限制电流变化速度

AI安全漏洞之VLLM反序列化漏洞分析与保姆级复现(附批量利用)

前期准备 环境需要&#xff1a;Linux&#xff08;这里使用kali&#xff09;、Anaconda 首先安装Anaconda 前言&#xff1a;最好使用linux&#xff0c;如果使用windows可能会产生各种报错&#xff08;各种各种各种&#xff01;&#xff01;&#xff01;&#xff09;&#xff…

用梗营销来启动市场

目录 为什么梗营销适合初创公司 有效的梗营销技巧 梗不仅仅是有趣的图片&#xff0c;它们是包裹在幽默中的文化时刻。对于小企业家&#xff08;以及大企业家&#xff09;&#xff0c;梗代表了一种强大且性价比高的市场推广方式。让我们分解一下为什么梗营销有效&#xff0c;以…

简单vue3前端打包部署到服务器,动态配置http请求头后端ip方法教程

vue3若依框架前端打包部署到服务器&#xff0c;需要部署到多个服务器上&#xff0c;每次打包会很麻烦&#xff0c;今天教大家一个动态配置请求头api的方法&#xff0c;部署后能动态获取(修改)对应服务器的请求ip 介绍两种方法&#xff0c;如有需要可以直接尝试步骤一&#xff…