C语言—自定义(构造)类型
2.20,17.56
1.只有当我们使用结构体类型定义变量/结构体数组,系统才会为结构体的成员分配内存空间,用于存储对应类型的数据
2.strct 结构体 一起作为结构体类型标识符
嘿嘿暂时先这样,我会回来改的
1、定义一个表示公交线路的结构体,要求有线路名称(例如 616),起始站,终点站,里程等成员,
定义结构体数组,用来存储多条条公交线路信息,要求能够输出从指定起始站发车的所以公交线路信息。
/*1、定义一个表示公交线路的结构体,要求有线路名称(例如 616),起始站,终点站,里程等成员,定义结构体数组,用来存储多条条公交线路信息,要求能够输出从指定起始站发车的所以公交线路信息。*/#include <stdio.h>
#include <string.h>#define N 10
#define R 50struct busline
{char name[N];char startStation[R];char endStation[R];float kmetres;};int main(int argc,char** argv)
{struct busline bus[N] ={{"616","A市","B市",23.5f},{"617","C市","A市",33.3f},{"618","B市","C市",66.6f},};for(int i = 0;i < 3;i++){printf("线路名称: %s\n",bus[i].name);printf("起始站: %s\n",bus[i].startStation);printf("终点站: %s\n",bus[i].endStation);printf("里程(km): %.1f\n",bus[i].kmetres);}return 0;}
2、定义一个表示电影信息的结构体,要求有电影名称,时长,上映日期(字符串数据),等成员,定义结构体数组,用来存储电影信息,要求根据指定电影名称,删除该电影的所有信息。
嘿嘿老师讲了
/*2、定义一个表示电影信息的结构体,要求有电影名称,时长,上映日期(字符串数据),等成员
定义结构体数组,用来存储电影信息,要求根据指定电影名称,删除该电影的所有信息。*/
#include <stdio.h>
#include <string.h>struct movie
{char name[20];int lenth;struct date{int year;int month;int day;}showdate;
};int findItem(struct movie mv[],int n,const char* name)
{for(register int i = 0; i < n; i++){if(strcmp(mv[i].name,name) == 0)return i;} return -1;
}
int deleteItem(struct movie mv[],int n,const struct movie *item)
{register int i = 0, j = 0;for(i = 0; i < n; i++){if((memcmp(&mv[i],item,sizeof(struct movie)) != 0)){if(j != i)mv[j] = mv[i];j++;}}return j;
}int main(int argc, char** argv)
{struct movie mv[] = {{"热辣滚烫",120,{2024-2-10}},{"满江红",100,{2023-1-1}},{"老师好",90,{2023-4-8}},{"速度与激情",120,{2022-11-16}}};int n = sizeof mv / sizeof mv[0];for(register int i = 0; i < n; i++){printf("电影名:%s\t时长:%d\t上映日期:%4d-%02d-%02d\n",mv[i].name,mv[i].lenth,mv[i].showdate.year,mv[i].showdate.month,mv[i].showdate.day);}puts("===============================");printf("请输入要删除的电影名:");char szName[20] = {0};scanf("%s",szName);int idx = findItem(mv,n,szName); if(idx == -1){printf("你输入的电影名不存在,返回\n");return -1;} int count = deleteItem(mv,n,&mv[idx]); printf("删除后元素个数:%d\n",count);for(register int i = 0; i < count; i++){printf("电影名:%s\t时长:%d\t上映日期:%4d-%02d-%02d\n",mv[i].name,mv[i].lenth,mv[i].showdate.year,mv[i].showdate.month,mv[i].showdate.day);}return 0;
}
/*2、定义一个表示电影信息的结构体,要求有电影名称,时长,上映日期(字符串数据)等成员定义结构体数组,用来存储电影信息,要求根据指定电影名称,删除该电影的所有信息。*/#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 定义电影信息的结构体
typedef struct
{char name[50]; // 电影名称int duration; // 时长(分钟)char release_date[20]; // 上映日期
} Movie;// 函数声明
void delete_movie(Movie *movies, int *count, const char *name);int main(int argc,char** argv)
{// 初始化电影信息数组Movie movies[100];int movie_count = 0;// 添加一些电影信息strcpy(movies[movie_count].name, "战狼2");movies[movie_count].duration = 135;strcpy(movies[movie_count].release_date, "2017-07-28");movie_count++;strcpy(movies[movie_count].name, "哪吒之魔童降世");movies[movie_count].duration = 110;strcpy(movies[movie_count].release_date, "2019-07-26");movie_count++;// 打印原始电影列表printf("原始电影列表:\n");for (int i = 0; i < movie_count; i++){printf("名称:%s,时长:%d分钟,上映日期:%s\n",movies[i].name, movies[i].duration, movies[i].release_date);}// 删除指定的电影信息const char *name_to_delete = "战狼2";delete_movie(movies, &movie_count, name_to_delete);// 打印删除后的电影列表printf("删除后的电影列表:\n");for (int i = 0; i < movie_count; i++){printf("名称:%s,时长:%d分钟,上映日期:%s\n",movies[i].name, movies[i].duration, movies[i].release_date);}return 0;
}// 根据电影名称删除电影信息
void delete_movie(Movie *movies, int *count, const char *name)
{int found = 0; // 标记是否找到电影// 遍历电影列表,查找要删除的电影for (int i = 0; i < *count; i++){if (strcmp(movies[i].name, name) == 0){found = 1; // 找到电影// 删除电影信息,将后面的电影向前移动for (int j = i; j < *count - 1; j++){movies[j] = movies[j + 1];}(*count)--; // 更新电影数量break;}}// 如果没有找到电影,则打印提示信息if (!found){printf("没有找到名为'%s'的电影。\n", name);}
}
嘿嘿嘿嘿不会
3、定义一个表示物品的结构体,要求有物品名称,单价,等成员,
定义结构体数组,用来存储多个物品信息,要求利用结构体指针变量查找单价最高 及最低的物品所有信息,并输出信息。
/*3、定义一个表示物品的结构体,要求有物品名称,单价,等成员,
定义结构体数组,用来存储多个物品信息,要求利用结构体指针变量查找单价最高 及最低的物品所有信息,并输出信息。*/#include <stdio.h>
#include <string.h>// 定义商品结构体
typedef struct
{char name[50]; // 商品名称float price; // 商品单价
} Product;// 函数声明
void findMinMaxProduct(Product products[], int length, Product *minProduct, Product *maxProduct);int main(int argc,char** argv)
{// 初始化商品数组Product products[3] = {{"苹果", 5.5},{"香蕉", 3.2},{"橙子", 7.0}};// 变量用于存储找到的最小和最大商品Product minProduct, maxProduct;// 查找单价最高和最低的商品findMinMaxProduct(products, 3, &minProduct, &maxProduct);// 输出结果printf("单价最低的商品是:%s,单价为%.2f\n", minProduct.name, minProduct.price);printf("单价最高的商品是:%s,单价为%.2f\n", maxProduct.name, maxProduct.price);return 0;
}// 查找单价最高和最低的商品
void findMinMaxProduct(Product products[], int length, Product *minProduct, Product *maxProduct)
{*minProduct = products[0]; // 假设第一个商品价格最低*maxProduct = products[0]; // 假设第一个商品价格最高for (int i = 1; i < length; i++){if (products[i].price < minProduct->price){*minProduct = products[i];}if (products[i].price > maxProduct->price){*maxProduct = products[i];}}
}
会不了一点嘿嘿
相关文章:
C语言—自定义(构造)类型
2.20,17.56 1.只有当我们使用结构体类型定义变量/结构体数组,系统才会为结构体的成员分配内存空间,用于存储对应类型的数据 2.strct 结构体 一起作为结构体类型标识符 嘿嘿暂时先这样,我会回来改的1、定义一个表示公交线路的结构体,要…...
ArcgisForJS如何实现添加含图片样式的点要素?
文章目录 0.引言1.加载底图2.获取点要素的坐标3.添加含图片样式的几何要素4.完整实现 0.引言 ArcGIS API for JavaScript 是一个用于在Web和移动应用程序中创建交互式地图和地理空间分析应用的库。本文在ArcGIS For JavaScript中使用Graphic对象来创建包含图片样式的点要素。 …...
C#之WPF学习之路(2)
目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员和功能 控件的父类 在 WPF (Windo…...
胶原抗体诱导小鼠关节炎模型
胶原诱导性关节炎小鼠(CIA)作为人类类风湿关节炎模型应用广泛,但CIA引起的关节炎起病比较缓慢,造模周期较长,一般为6-8周(1-12)。Chondrex公司已开发出单一种单克隆抗体合剂诱导的小鼠关节炎模型(CAIA),明显缩短了造模…...
集百家所长的开放世界游戏,艾尔莎H311-PRO带你玩转《幻兽帕鲁》
随着近几年开放世界游戏热潮的兴起,如今这类游戏可以说是像雨后春笋般不断推出,比如《幻兽帕鲁》就是近期非常火热的一个代表,它不仅集合了生存、建造、宠物养成等多种元素,而且可爱的卡通画风格更是老少皆宜。那么,这…...
机器人内部传感器阅读笔记及心得-位置传感器-旋转变压器、激光干涉式编码器
旋转变压器 旋转变压器是一种输出电压随转角变化的检测装置,是用来检测角位移的,其基本结构与交流绕线式异步电动机相似,由定子和转子组成。 旋转变压器的原理如图1所示,定子相当于变压器的一次侧,有两组在空间位置上…...
深度学习的学习笔记帖子2
人脸数据集的介绍: https://zhuanlan.zhihu.com/p/362356480 https://blog.csdn.net/bjbz_cxy/article/details/122210641 CASIAWebFace人脸数据集等的github: https://github.com/deepinsight/insightface/blob/master/recognition/datasets/README.md…...
【机器学习学习脉络】
机器学习学习脉络 基础知识 数学基础 线性代数概率论与数理统计微积分最优化理论 编程基础 Python编程语言数据结构与算法软件工程原则 计算机科学基础 操作系统网络通信数据库系统 机器学习概论 定义与发展历程机器学习的主要任务和应用领域基本术语和概念 监督学习 线…...
golang命令行工具gtcli,实现了完美集成与结构化的gin脚手架,gin-restful-api开箱即用
关于gtools golang非常奈斯,gin作为web框架也非常奈斯,但我们在开发过程中,前期搭建会花费大量的时间,且还不尽人意。 为此我集成了gin-restful-api的模板gin-layout,还有脚手架一键生成项目。 集成相关 ginviperz…...
Qt 事件
1. 事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。在Qt中使用一个对象来表示一个事件,它继承自QEvent类。 2. 事件和信号 事件与信号并不相同,比如我们使用鼠标点击了一下界面上的按钮,那么就会产生…...
JAVA高并发——并行算法
文章目录 1、并行流水线2、并行搜索3、并行排序3.1、分离数据相关性:奇偶交换排序3.2、改进的插入排序:希尔排序 4、并行算法:矩阵乘法 1、并行流水线 并行算法虽然可以充分发挥多核CPU的性能,但并非所有的运算都可以改造成并行的…...
HTTP 与 HTTPS-HTTP 解决了 HTTP 哪些问题?
资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 解决了 HTTP 哪些问题? HTTP 由于是明文传输,所以安全上存在以下三个风险: 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。篡改风险,比如…...
S32 Design Studio PE工具配置TMR
配置步骤 配置内容 生成的配置结构体如下,在Generated_Code路径下的lpTmr.c文件和lpTmr.h文件。 /*! lpTmr1 configuration structure */ const lptmr_config_t lpTmr1_config0 {.workMode LPTMR_WORKMODE_PULSECOUNTER,.dmaRequest false,.interruptEnable tr…...
Typescript中常用的数据类型
文章目录 概要TS的数据类型1.基础类型-- 简单的类型-- Array类型-- Object类型- 可选类型 -- Function类型- 函数的参数类型- 函数的返回值类型- 匿名函数的参数- 函数参数为对象类型- 函数的调用签名- 函数的构造签名(了解)- 剩余参数- 函数的重载(了解)- 函数的this(了解) 2.…...
【推荐】渗透测试面试(问题+答案)
1、介绍一下自认为有趣的挖洞经历 2、你平时用的比较多的漏洞是哪些?相关漏洞的原理?以及对应漏洞的修复方案? 3、php/java反序列化漏洞的原理?解决方案? 4、如果一台服务器被入侵后,你会如何做应急响应? 5、你平时使用哪些工具?以及对应工具的特点? 6、如果遇到waf的情…...
基于java+springboot+vue实现的美食信息推荐系统(文末源码+Lw)23-170
1 摘 要 使用旧方法对美食信息推荐系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在美食信息推荐系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发…...
HGAME week2 web
1.What the cow say? 测试发现可以反引号命令执行 ls /f* tac /f*/f* 2.myflask import pickle import base64 from flask import Flask, session, request, send_file from datetime import datetime from pytz import timezonecurrentDateAndTime datetime.now(timezone(…...
SQL注入:网鼎杯2018-unfinish
目录 使用dirmap扫描 使用dirsearch扫描 使用acunetix扫描 爆破后端过滤的字符 绕过限制获取数据 这次的进行SQL注入的靶机是:BUUCTF在线评测 进入到主页面后发现是可以进行登录的,那么我们作为一个安全人员,那肯定不会按照常规的方式来…...
C 标准库 - <limits.h>
在C语言编程中,<limits.h> 头文件扮演着关键角色,它为各种基本数据类型定义了最小和最大限制。通过使用这些预定义的宏,程序员可以确保程序代码不会尝试存储超出特定类型范围的值。 简介 <limits.h> 头文件包含了关于不同类型&…...
《游戏引擎架构》--学习3
内存管理 优化动态内存分配 维持最低限度的堆分配,并且永不在紧凑循环中使用堆分配 容器 迭代器 Unicode...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
