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.pswp.cn/news/697736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697736.shtml
英文地址,請注明出處:http://en.pswp.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; 問題來了如果我們在…