c语言 结构体 简单实例
结构体
简单例子
要求:
结构体保存学生信息操作
代码
#include <stdio.h>//定义结构体
struct student{int ID;char name[20];char sex;char birthday[8];int grade;
};int main(){int number;printf("请输入学生个数:");scanf("%d", &number);//声明结构体变量struct student stu[number];//输入数据for (int i=0; i<number; ++i){printf("请输入(每个数据用空格隔开):");scanf("%d %s %s %s %d", &stu[i].ID, &stu[i].name, &stu[i].sex, &stu[i].birthday, &stu[i].grade);}printf("--------------------------------\n");for (int i=0; i<number; ++i){printf("学号:%d\t姓名:%s\t性别:%c\t 出生日期:%s\t成绩:%d\n",stu[i].ID, stu[i].name, stu[i].sex, stu[i].birthday, stu[i].grade);}return 0;
}
运行效果
课堂作业
要求:
对结构体操作:输入数据,查找数据,插入数据,删除数据,合并数据比进行排列输出
代码
#include <stdio.h>
#define MAX_SIZE 100typedef struct {int data[MAX_SIZE];int length;
} SeqList;//初始化操作
void init(SeqList *list) {list->length = 0;
}//插入操作
void insert(SeqList *list, int pos, int value) {if (pos < 1 || pos > list->length + 1) {printf("插入位置错误\n");return;}if (list->length >= MAX_SIZE) {printf("顺序表已满,无法插入\n");return;}for (int i = list->length; i >= pos; i--) {list->data[i] = list->data[i - 1];}list->data[pos - 1] = value;list->length++;
}//查找操作
int find(SeqList *list, int value) {for (int i = 0; i < list->length; i++) {if (list->data[i] == value) {return i;}}return -1;
}//展示操作
void display(SeqList *list) {for (int i = 0; i < list->length; i++) {printf("%d ", list->data[i]);}printf("\n");
}//删除操作
void del(SeqList *list, int del_value){if (list->length==0){printf("线性表为空!\n");return;}int temp=0;for(int i=0; i<list->length; i++){if(list->data[i] != del_value){list->data[temp] = list->data[i];temp++;}}list->length = temp;}//合并操作,降序排列
void merge_sort(SeqList *L_A, SeqList *L_B, SeqList *L_C){int k=0;for (int i = 0; i < L_A->length; i++) {L_C->data[k] = L_A->data[i];k++;L_C->length++;}for (int j = 0; j < L_B->length; j++) {L_C->data[k] = L_B->data[j];k++;L_C->length++;}//冒泡排序for(int x=0; x <= L_C->length -1; x++){for(int y=0; y <= L_C->length-x; y++){if(L_C->data[y] < L_C->data[y+1]){int temp = L_C->data[y];L_C->data[y] = L_C->data[y+1];L_C->data[y+1] = temp;}}}
}//升序排列
void merge_ascending(SeqList *L_C, SeqList *L_D){int i=0;for(int k=L_C->length-1; k>=0; k--){L_D->data[k] = L_C->data[i];L_D->length++;i++;}
}int main() {//声明结构体变量SeqList L_A;SeqList L_B;SeqList L_C;SeqList L_D;//初始化init(&L_A);init(&L_B);init(&L_C);init(&L_D);// 用户输入数据printf("请输入数据(每输入一个数据后回车,输入777可结束):\n");for (int i = 0; i < MAX_SIZE; i++) {int data_value;scanf("%d", &data_value);if(data_value == 777){break;}L_A.data[i] = data_value;L_A.length++;}// 默认查找数据 4,并输出数据4的位置int index = find(&L_A, 4);if (index != -1) {printf("找到数据 4,位置为:%d\n", index + 1);} else {printf("未找到数据 4\n");}// 在第四个位置上插入数据 100int in_value;printf("请输入要插入的数字:\n");scanf("%d", &in_value);insert(&L_A, index+1, in_value);// 展示数据表结果display(&L_A);// 删除操作printf("请输入删除的数字:\n");int del_value;scanf("%d",&del_value);del(&L_A, del_value);// 展示数据表结果display(&L_A);// 输入第二个数据表并进行合并操作printf("请输入第二个数据表的数据,(每输入一个数据后回车,输入777可结束)\n");for (int i = 0; i < MAX_SIZE; i++) {int data_value;scanf("%d", &data_value);if(data_value == 777){break;}L_B.data[i] = data_value;L_B.length++;}printf("第二个数据表的数据为:\n");display(&L_B);printf("\n");//降序排列printf("降序排列为:\n");merge_sort(&L_A, &L_B, &L_C);//展示数据表结果display(&L_C);printf("\n");//升序排列printf("升序排列为:\n");merge_ascending(&L_C, &L_D);// 展示数据表结果display(&L_D);return 0;
}
运行效果
相关文章:

c语言 结构体 简单实例
结构体 简单例子 要求: 结构体保存学生信息操作 代码 #include <stdio.h>//定义结构体 struct student{int ID;char name[20];char sex;char birthday[8];int grade; };int main(){int number;printf("请输入学生个数:");scanf(&quo…...
【ChatGPT】ChatGPT的自定义指令
ChatGPT的自定义指令 关于ChatGPT自定义指令的常见问题解答概述可用性如何使用您的数据自定义指令设置将应用于所有新聊天。启动新聊天可查看更改iOS & AndroidWeb 示例常见问题使用自定义指令的好处字符限制我的ChatGPT数据导出中是否包含自定义指令?当我删除我…...
《哥德尔、艾舍尔、巴赫——集异璧之大成》阅读笔记1
1、谁也不知道非智能行为和智能行为之间的界限在哪里。事实上,认为存在明显界限也许是愚蠢的。但是智能的基本能力还是确定的,它们是: 对于情境有很灵活的反应充分利用机遇弄懂含糊不清或彼此矛盾的信息认识到一个情境中什么是重要的因素&am…...
稳定细胞系构建技术介绍
抗体药物的开发是一个非常复杂的过程,构建适用于工业生产的高表达的稳定细胞株是抗体药工艺开发的起点和基础。一株稳定高产的工程细胞株不仅能显著增加单位体积产量,降低生产成本,还可以降低下游纯化工艺复杂度,确保获得安全&…...

k8s部署srs服务
k8s部署srs服务 项目需要把srs纳入k8s进行管理,需要通过k8s来部署srs服务然后原本的srs可以支持rtmp与webrtc两种,官网查了部署方式,k8s只有最基本的部署方式于是开始研究k8s部署能够正常推拉流的webrtc版本的srs 首先肯定是去官网查有无相关…...
使用Java分割PDF文件
在Java中,我们可以使用iText库来处理PDF文件。iText是一个流行的Java库,用于创建和处理PDF文件。在本篇博客中,我们将介绍如何使用Java分割一个PDF文件为多个小的PDF文件。 1. 引入iText依赖 首先,我们需要在项目中引入iText库的…...
LLM时代中的分布式AI
深度学习相较传统机器学习模型,对算力有更高的要求。尤其是随着深度学习的飞速发展,模型体量也不断增长。于是,前几年,我们看到了芯片行业的百家争鸣和性能指标的快速提升。正当大家觉得算力问题已经得到较大程度的缓解时…...

Zinx框架-游戏服务器开发003:架构搭建-需求分析及TCP通信方式的实现
文章目录 1 项目总体架构2 项目需求2.1 服务器职责2.2 消息的格式和定义 3 基于Tcp连接的通信方式3.1 通道层实现GameChannel类3.1.1 TcpChannel类3.1.2 Tcp工厂类3.1.3 创建主函数,添加Tcp的监听套接字3.1.4 代码测试 3.2 协议层与消息类3.2.1 消息的定义3.2.2 消息…...

如何使用Pyarmor保护你的Python脚本
目录 一、Pyarmor简介 二、使用Pyarmor保护Python脚本 1、安装Pyarmor 2、创建Pyarmor项目 3、添加Python脚本 4、配置执行环境 5、生成保护后的脚本 三、注意事项与未来发展 四、未来发展 五、总结 本文深入探讨了如何使用Pyarmor工具保护Python脚本。Pyarmor是一个…...
【c++】搜索二叉树的模拟实现
搜索二叉树的模拟实现 k模型完整代码 #pragma once namespace hqj1 {template<class K>struct SBTreeNode{public://这里直接用匿名对象作为缺省参数SBTreeNode(const K& key K()):_key(key), _cleft(nullptr), _cright(nullptr){}public:K _key;SBTreeNode* _cle…...
Kubeadm - K8S1.20 - 高可用集群部署(博客)
这里写目录标题 Kubeadm - K8S1.20 - 高可用集群部署一.环境准备1.系统设置 二.所有节点安装docker三.所有节点安装kubeadm,kubelet和kubectl1.定义kubernetes源2.高可用组件安装、配置 四.部署K8S集群五.问题解决1.加入集群的 Token 过期2.master节点 无法部署非系…...

515. 在每个树行中找最大值
描述 : 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。 题目 : LeetCode 在每个树行中找最大值 : 515. 在每个树行中找最大值 分析 : 这里其实就是在得到一层之后使用一个变量来记录当前得到的最大值 , 懂了前面的几道这就是小菜 解析 : /…...

基于springboot+vue的图书馆管理系统
图书馆管理系统 springboot32阿博图书馆管理系统 源码合集: www.yuque.com/mick-hanyi/javaweb 源码下载:博主私 摘 要 随着社会的发展,计算机的优势和普及使得阿博图书馆管理系统的开发成为必需。阿博图书馆管理系统主要是借助计算机&…...
诊断刷写流程中使用到的诊断服务
10 01:诊断刷写完成后让目标ECU重置或让整车网络中其他ECU切换回默认会话 10 02:设置外部编程请求标志位或切换到编程会话(诊断刷写需要在编程会话下进行) 10 03:让目标ECU切换到扩展会话,以便进行其他诊断…...

pytorch 中 nn.Conv2d 解释
1. pytorch nn.Con2d 中填充模式 torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue, padding_mode‘zeros’, deviceNone, dtypeNone) 1.1 padding 参数的含义 首先 ,padd N, 代表的是 分别在 上下&…...

漏刻有时百度地图API实战开发(2)文本标签显示和隐藏的切换开关
项目说明 在百度地图开发的过程中,如果遇见大数据量POI标注展示或在最佳视野展示时,没有文本标签,会不清楚具体标注的代表的意义;如果同时显示大量的文本标签,又会导致界面杂乱且无法清晰查看,因此&#x…...

Flink往Starrocks写数据报错:too many filtered rows
Bug信息 Caused by: com.starrocks.data.load.stream.exception.StreamLoadFailException: {"TxnId": 2711690,"Label": "cd528707-8595-4a35-b2bc-39b21087d6ec","Status": "Fail","Message": "too many f…...

python-re模块
python之正则表达式-基础匹配https://blog.csdn.net/Python_1981/article/details/133777795python之正则表达式-元字符匹配https://blog.csdn.net/Python_1981/article/details/133778805 一、查找 1、findall 2、search 如果没有匹配到,会返回None, 使用group会报…...

SSM之spring注解式缓存redis
🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 1.Redis与SSM的整合 1.1.添加Redis依赖 在Maven中添加Redis的依赖 <redis.version>2.9.0</redis.…...

jmeter压测问题分析
1、 目录 1、jmeter压测java.net.BindException: Address already in use: connect问题处理: 2、jmeter压测:java.net.SocketException: Socket closed: : 之前未勾选same user on each iteration中报问题java.net.BindExcept…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...