作業7.2

用結構體數組以及函數完成:
錄入你要增加的幾個學生,之后輸出所有的學生信息
刪除你要刪除的第幾個學生,并打印所有的學生信息
修改你要修改的第幾個學生,并打印所有的學生信息
查找你要查找的第幾個學生,并打印該的學生信息

  1 /*用結構體數組以及函數完成:2   錄入你要增加的幾個學生,之后輸出所有的學生信3   刪除你要刪除的第幾個學生,并打印所有的學生信息4   修改你要修改的第幾個學生,并打印所有的學生信息5   查找你要查找的第幾個學生,并打印該的學生信息*/6 #include "/home/ubuntu/myheader.h"7 #define MAX_STUDENTS 1008 typedef struct{9     char name[50];10     int age;11     char id[10];12 }Student;13 14 Student students[100]; // 學生數組15 Student* p = students;16 int numStudents = 0; // 當前學生數量17 18 void printAllStudents();19 void inputStudents();20 void deleteStudent();21 void modifyStudent();22 void findStudent();23 24 int main(int argc, const char *argv[])25 {26     int choice;27     while (1) {28         printf("1. 添加學生\n");29         printf("2. 刪除學生\n");30         printf("3. 修改學生\n");31         printf("4. 查找學生\n");32         printf("5. 打印所有學生\n");33         printf("6. 退出\n");34         printf("請輸入您的選擇:");35         scanf("%d", &choice);36         switch (choice){37  case 1:inputStudents();break;38  case 2:deleteStudent();break;39  case 3:modifyStudent();break;40  case 4:findStudent();break;41  case 5:printAllStudents();break;42  case 6:return 0;43  default:printf("無效的選擇。請重新嘗試。\n");44         }45     }46 }47     // 打印所有學生信息48     void printAllStudents() {49         if(numStudents == 0)50             printf("\n————————暫無學生信息————————\n\n");51         else if(numStudents > 0){52         printf("\n————————所有學生信息:————————\n");53         for (int i = 0; i < numStudents; i++) {54             printf("索引:%d\n", i);55             printf("姓名:%s\n", p->name);56             printf("年齡:%d\n", p->age);57             printf("學號:%s\n", p->id);58             printf("——————————————————\n\n");59         }60     }61     }62     // 錄入學生信息63     void inputStudents() {64         printf("\n——————————————————————\n錄入學生信息人數:");65         scanf("%d",&numStudents);66         for (int i = 0; i < numStudents; i++) {67             printf("請輸入第 %d 個學生的信息:\n", i + 1);68             printf("姓名:");69             scanf("%s", p->name);70             printf("年齡:");71             scanf("%d", &p->age);72             printf("學號:");73             scanf("%s", p->id);74         }75         printf("———————————————————————\n\n");76     }77     // 刪除學生信息78     void deleteStudent() {79         int index;80         printf("\n——————————————————————\n請輸入要刪除的學生索引:");81         scanf("%d", &index);82         if (index < 0 || index >= numStudents) {83             printf("錯誤:無效的學生索引。\n");84             printf("——————————————————————\n");85             return;86         }87         for (int i = index; i < numStudents - 1; i++) {88             p[i] = p[i + 1];89         }90         numStudents--;91         printf("學生信息刪除成功。\n\n");92         printf("——————————————————\n\n");93     }94 95     // 修改學生信息96     void modifyStudent() {97         int index;98         printf("\n——————————————————————\n請輸入要修改的學生索引:");99         scanf("%d", &index);
100         if (index < 0 || index >= numStudents) {
101             printf("錯誤:無效的學生索引。\n\n");
102             printf("——————————————————————\n");
103             return;
104         }
105         printf("請輸入新的學生姓名:");
106         scanf("%s", (p+index)->name);
107         printf("請輸入新的學生年齡:");
108         scanf("%d", &(p+index)->age);
109         printf("請輸入新的學生學號:");
110         scanf("%s", (p+index)->id);
111         printf("學生信息修改成功。\n\n");
112         printf("——————————————————————\n\n");
113     }
114 
115     // 查找學生信息
116     void findStudent() {
117         int index;
118         printf("\n——————————————————————\n請輸入要查找的學生索引:");                                                                                                                                                                                                                                                                                                                               
119         scanf("%d", &index);
120         if (index < 0 || index >= numStudents) {
121             printf("錯誤:無效的學生索引。\n\n");
122             printf("——————————————————————\n");
123             return;
124         }
125         printf("找到的學生信息如下:\n");
126         printf("姓名:%s\n", (p+index)->name);
127         printf("年齡:%d\n", (p+index)->age);
128         printf("學號:%s\n\n", (p+index)->id);
129         printf("——————————————————————\n\n");
130     }

?程序運行如下:


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38272.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea常用問題記錄

文章目錄 1.ant構建報錯編譯錯誤1.1 解決辦法 1.ant構建報錯編譯錯誤 Compile failed;xxx 1.1 解決辦法

Python系統教程02

鞏固 input()輸出函數 回顧 1 、 input()函數&#xff1a; 在 input()函數輸入時&#xff0c;輸入的內容一定為字符串類型。 2 、條件分支語句&#xff1a; 每一個 if 語句可以看成一個個體&#xff0c;elif 和 else 都是一個 if 個體的一部分&#xff0c;每一個 if 個體 運…

51單片機外部中斷(按鍵識別)

歡迎入群共同學習交流 時間記錄&#xff1a;2024/7/2 一、電路原理圖 51單片機包含INT0、INT1兩個外部中斷接口 二、知識點介紹 1.中斷寄存器位介紹 &#xff08;1&#xff09;TCON定時控制寄存器&#xff0c;位0&#xff08;IT0&#xff09;中斷INT0請求信號選擇位&#x…

WordPress主題開發進群付費主題v1.1.2 多種引流方式

全新前端UI界面&#xff0c;多種前端交互特效讓頁面不再單調&#xff0c;進群頁面群成員數&#xff0c;群成員頭像名稱&#xff0c;每次刷新頁面隨機更新不重復&#xff0c;最下面評論和點贊也是如此隨機刷新不重復 進群頁面簡介&#xff0c;群聊名稱&#xff0c;群內展示&…

注意!年齡越大,社交圈子越窄?其實這是老人的理性選擇!數學家告訴你:何時該跳槽,何時該堅守!你必須知道的三個智慧:讓你的人生更加精彩!

我們到底應該在什么情況下探索新事物&#xff0c;什么情況下專注于已有的東西呢&#xff1f;本質上來說&#xff0c;這個問題就是在詢問&#xff0c;你究竟應該耗費精力去探索新的信息&#xff0c;還是專注從既有的信息中獲取收獲&#xff1f; 有人采訪了臨終的老人&#xff0c…

中國三大平原矢量示意圖分享

我們在《中國地勢三級階梯示意圖分享》、《中國四大高原矢量示意圖分享》和《中國主要山脈矢量示意圖分享》等文中&#xff0c;為你分享過中國地勢相關的矢量示意圖。 現在再為你分享一下我國東北平原、華北平原和長江中下游平原的矢量示意圖&#xff0c;這三大平原均位于我國…

隨想錄總結 Day 77

隨想錄總結 Day 77 回憶75天的做題時間&#xff0c;差點沒堅持下來的有兩個時間點&#xff0c;一個是在前20天&#xff0c;很多時候二叉樹這種基礎題&#xff0c;前中后序列遍歷之類的。基礎&#xff0c;但真正寫一遍&#xff0c;每道題又有多種寫法。花了很長時間但是也就是一…

go sync包(七)Sync.Map

Sync.Map 原理 通過 read 和 dirty 兩個字段實現數據的讀寫分離&#xff0c;讀的數據存在只讀字段 read 上&#xff0c;將最新寫入的數據存在 dirty 字段上。讀取時會先查詢 read&#xff0c;不存在再查詢 dirty&#xff0c;寫入時則只寫入 dirty。讀取 read 并不需要加鎖&am…

每天一個數據分析題(三百九十九)- 邏輯回歸

邏輯回歸中&#xff0c;若選0.5作為閾值區分正負樣本&#xff0c;其決策平面是&#xff08; &#xff09; A. wxb&#xff1d; 0 B. wxb&#xff1d; 1 C. wxb&#xff1d; -1 D. wxb&#xff1d; 2 數據分析認證考試介紹&#xff1a;點擊進入 題目來源于CDA模擬題庫 點…

Python實現萬花筒效果:創造炫目的動態圖案

文章目錄 引言準備工作前置條件 代碼實現與解析導入必要的庫初始化Pygame定義繪制萬花筒圖案的函數主循環 完整代碼 引言 萬花筒效果通過反射和旋轉圖案創造出美麗的對稱圖案。在這篇博客中&#xff0c;我們將使用Python來實現一個動態的萬花筒效果。通過利用Pygame庫&#xf…

大數據可視化實驗(八):大數據可視化綜合實訓

目錄 一、實驗目的... 1 二、實驗環境... 1 三、實驗內容... 1 1&#xff09;Python縱向柱狀圖實訓... 1 2&#xff09;Python水平柱狀圖實訓... 3 3&#xff09;Python多數據并列柱狀圖實訓.. 3 4&#xff09;Python折線圖實訓... 4 5&#xff09;Python直方圖實訓...…

PAT 1108 Finding Average

原題鏈接&#xff1a;PAT 1108 Finding Average The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be legal. A legal input is a real number in…

Python只讀取Excel文件的一部分數據,比如特定范圍的行和列?

如何只讀取Excel文件的一部分數據&#xff0c;比如特定范圍的行和列&#xff1f; 在Python中&#xff0c;如果你只想讀取Excel文件的特定范圍&#xff0c;可以使用以下方法&#xff1a; pandas: Pandas是一個強大的數據處理庫&#xff0c;它有一個內置函數read_excel()用于讀…

在不修改.gitignore的情況下,忽略個人文件的提交

Git提供了一個assume-unchanged命令&#xff0c;可以將文件標記為“假設未更改”。這意味著Git將忽略該文件的更改&#xff0c;不會將其提交到倉庫中。要使用該命令&#xff0c;只需運行以下命令&#xff1a; git update-index --assume-unchanged <file>其中&#xff0…

邊緣網關帶來的效益探討-天拓四方

邊緣網關作為連接物理世界與數字世界的橋梁&#xff0c;在智能制造、智慧城市等各個領域中發揮著關鍵作用。通過收集、處理來自各種傳感器和設備的數據&#xff0c;邊緣網關為實時決策、優化生產流程以及提高運營效率提供了強有力的支持。下面我們將探討邊緣網關帶來的效益。 …

鏈路全貫通,價值引領數據能力升級|愛分析報告

數據能力已經成為企業的核心競爭力。政策驅動數據產業發展加速&#xff0c;如2023年國家數據局成立&#xff1b;2024年&#xff0c;《“數據要素”三年行動計劃&#xff08;2024-2026年&#xff09;》正式發布&#xff1b;并且 2024年起正式將數據資源視為資產納入財務報表&…

C++——list類用法指南

一、list的介紹 1、list是可以在常數范圍內在任意位置進行插入和刪除的序列式容器&#xff0c;并且該容器可以前后雙向迭代 2、list的底層是雙向鏈表結構&#xff0c;雙向鏈表中每個元素存儲在互不相關的獨立節點中&#xff0c;在節點中通過指針指向其前一個元素和后一個元素 …

yum安裝并初始化PG

獲取yum源 從官網獲取yum源&#xff0c;并安裝rpm包 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm安裝 yum install -y postgresql14-server啟動并初始化 sudo /usr/pgsql-14/bin/postgre…

機器學習-EM算法

目錄 一:最大似然估計 二:EM算法 加入隱變量 EM算法推導 1.Jensen不等式 點個贊唄!!! 一:最大似然估計 舉個栗子:一個袋子里有很多個球,每次放回的取一個球,取了十次,其中有六次白球,4次黑球。那么就認為袋子里面取到白球的概率為6/10,黑球的概率為4/10。…

pytorch-01

加載mnist數據集 one-hot編碼實現 import numpy as np import torch x_train np.load("../dataset/mnist/x_train.npy") # 從網站提前下載數據集&#xff0c;并解壓縮 y_train_label np.load("../dataset/mnist/y_train_label.npy") x torch.tensor(y…