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

会不了一点嘿嘿

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pikachu靶场-CSRF

CSRF: 介绍&#xff1a; Cross-site request forgery简称为"CSRF”。 在CSF的攻击场景中攻击者会伪造一个请求&#xff08;这个请求一般是一个链接&#xff09; 然后欺骗目标用户进行点击&#xff0c;用户一旦点击了这个请求&#xff0c;整个攻击也就完成了&#xff0…

VSCode-更改系统默认路径

修改vscode中的默认扩展路径&#xff1a;"%USERPROFILE%\.vscode" 打开目录C:\用户\电脑用户名&#xff0c;将.vscode文件剪切至D:\VSCode文件夹下 用管理员身份打开cmd.exe命令界面输入mklink /D "%USERPROFILE%\.vscode" "D:\VSCode\.vscode\"…

同一个包下 golang run时报undefined

问题描述 今天在运行一个项目&#xff0c;一个包下有两个文件&#xff0c;分别是main.go和route&#xff0c;main函数在main.go文件中&#xff0c;main引用了route.go中的两个函数&#xff0c;SetupRoutes和SetupAdminRoutes go build 编译后&#xff0c;直接运行&#xff0c…

【C++私房菜】面向对象中的简单继承

文章目录 一、 继承基本概念二、派生类对象及派生类向基类的类型转换三、继承中的公有、私有和受保护的访问控制规则四、派生类的作用域五、继承中的静态成员 一、 继承基本概念 通过继承&#xff08;inheritance&#xff09;联系在一起的类构成一种层次关系。通常在层次关系的…

Leetcoder Day17| 二叉树 part06

语言&#xff1a;Java/C 654.最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 …

进程间传递 SQL 文的方法

SQL 文组成 SQL 文有 2 部分组成&#xff1a; SQL 原型&#xff0c;如&#xff1a;INSERT INTO test1 (id,name) VALUES (?,?)Args &#xff0c;? 号对应的值列表 有时&#xff0c;生成 SQL 文的进程和处理 SQL 文的进程&#xff0c;可能不是同一个 这里就涉及到如何高效…

免费搭建个人网盘

免费搭建一个属于个人的网盘。 服务端 详情请参考原网站的服务端下载和安装虚拟磁盘Fuse4Ui可以支持把网盘内容挂载成系统的分区&#xff1b; 挂载工具效果图&#xff1a;应用端应用端的下载 效果图

蓝桥杯第1374题——锻造兵器

题目描述 小明一共有n块锻造石&#xff0c;第块锻造石的属性值为ai. 现在小明决定从这n块锻造石中任取两块来锻造兵器 通过周密计算&#xff0c;小明得出&#xff0c;只有当两块锻造石的属性值的差值等于C&#xff0c;兵器才能锻造成功 请你帮小明算算&#xff0c;他有多少种选…

人工智能几个关键节点:深蓝,AlphaGo,ChatGPT,Sora

近30年&#xff0c;人工智能几个关键节点&#xff1a;深蓝&#xff0c;AlphaGo&#xff0c;ChatGPT&#xff0c;Sora 深蓝&#xff1a; 1997年&#xff0c;深蓝击败卡斯帕罗夫的比赛是通过一系列复杂的算法和策略实现的。深蓝的开发团队使用了一种名为“暴力搜索”的技术&…

OGG-00918 映射中缺少键列 id.

2024-02-23 14:54:49 INFO OGG-02756 从线索文件获取了表 GISTAR.PXPH_PON_ROUTE 的定义。. The following columns did not default because of type mismatches: id OGG-00918 映射中缺少键列 id. 目标端有字段ID&#xff0c;由于mysql自增&#xff0c;所以只能是b…

短剧小程序系统,重塑视频观看体验的科技革命

随着科技的飞速发展&#xff0c;人们对于数字化内容的消费需求也在不断增长。在这个大背景下&#xff0c;短剧小程序作为一种新型的视频观看方式&#xff0c;正逐渐受到大众的青睐。本文将探讨短剧小程序的发展背景、特点以及市场前景&#xff0c;分析其在重塑视频观看体验方面…

如何使用Inno Setup制作Unity构建程序的Windows安装程序

1. 准备 &#xff08;1&#xff09;准备好Unity构建的程序集合 必须包括&#xff1a; Data文件夹&#xff08;xxx_Data&#xff09; Mono文件夹&#xff08;MonoBleedingEdge&#xff09; 打包的应用程序文件&#xff08;xxx.exe&#xff09; Unity播放器dll文件&#xff…

SpringBoot+Docker:高效容器化的最佳实践

首先为什么要使用 Docker&#xff1f; Docker 是一个强大的工具&#xff0c;它允许开发者将他们的应用程序打包到容器中&#xff0c;以便可以在任何平台上轻松部署和运行。当涉及到对 Spring Boot 应用程序进行 Docker 化时&#xff0c;每个开发人员都应该遵循一些最佳实践&am…

编程笔记 Golang基础 017 数据类型:字符串类型

编程笔记 Golang基础 017 数据类型&#xff1a;字符串类型 一、字符串类型小结 在Go语言中&#xff0c;字符串&#xff08;string&#xff09;是一种基本的数据类型&#xff0c;用于表示文本数据。它是一个不可变的字符序列&#xff0c;由UTF-8编码的字节组成&#xff0c;支持U…

深入URP之Shader篇15: Shader关键字和变体

之前说了很多shader关键字的事情&#xff0c;本篇好好说一下关键字和变体。 关键字是干什么的 我们写shader的时候&#xff0c;经常会遇到需要处理不同的情况&#xff0c;比如是否启用雾&#xff0c;光源是平行光还是点光源&#xff0c;是否使用法线贴图等等。如果为每一种情…

基于springboot+vue的大创管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

【selenium】执行 Javascript 脚本 滚动、元素的特殊操作等

某些特殊情况下&#xff0c;使用selenium的api无法操作页面元素&#xff0c;点击、滚动实现的某些功能&#xff0c;可以考虑通过执行js来完成。 为什么不用js写自动化&#xff1f;——selenium第一版是js写的&#xff0c;但js兼容性存在问题&#xff0c;所以引入webdriver 现在…

ad15 PCB3D模型导出到SOLIDWORKS

注意&#xff0c;工程文件目录不能用中文&#xff0c;否则导出的文件会不存在 将这个文件直接拖到 SOLIDWORKS 中 下一步很关键 显示出来了 另存为一个转配体就可以了

12 个对开发人员有用的 Python 脚本

目录 Create strong random passwordsExtract text from a PDFText processing with PandocManipulate audio with PydubFilter textLocate addressesConvert a CSV to ExcelPattern match with regular expressionsConvert images to JPGCompress imagesGet content from Wiki…

FPS游戏之漫谈网络抖动引发客户端的卡顿优化

话说各位大神 你们遇到过因为网络抖动导致客户端的卡顿现象吗&#xff0c;或者说测试反馈模拟弱网环境的时候某个功能点会卡顿一下&#xff0c;然后通过各种定位&#xff0c;发现原来是一次性下发了好多包&#xff1f;&#xff1f;&#xff1f;&#xff1f; 问题来了如果我们在…