C程式以結構體儲存學生記錄,並依姓名進行排序
在這個問題中,我們被給定一個學生的記錄,其中包含學生的學號、姓名和百分比。我們的任務是建立一個C程序,將學生記錄儲存為結構,並按照姓名對它們進行排序。
讓我們舉一個例子來理解這個問題,
#輸入 - 學生記錄=
{{ student_id = 1, student_name = nupur, student_percentage = 98}, { student_id = 2, student_name = Akash, student_percentage = 75}, { student_id = 3, student_name = Yash, student_percentage = 62}, { student_id = 4, student_name = Jyoti, student_percentage = 87}, { student_id = 5, student_name = Ramlal, student_percentage = 80}}
輸出 − 學生記錄=
{{ student_id = 2, student_name = Akash, student_percentage = 75}, { student_id = 4, student_name = Jyoti, student_percentage = 87}, { student_id = 1, student_name = nupur, student_percentage = 98}, { student_id = 5, student_name = Ramlal, student_percentage = 80}, { student_id = 3, student_name = Yash, student_percentage = 62}}
為了解決這個問題,我們首先會建立一個儲存學生詳細資料的結構。現在,我們將使用qsort()函數,並在該函數中定義一個比較器函數,該函數將使用strcmp()方法比較結構的名稱。
範例
將學生記錄儲存為結構並按名稱排序的程式
線上示範
//C program to store Student records as Structures and Sort them by Name #include <stdio.h> #include <stdlib.h> #include <string.h> struct Student { int student_id; char* student_name; int student_percentage; }; int comparator(const void* s1, const void* s2){ return strcmp(((struct Student*)s1)->student_name,((struct Student*)s2)->student_name); } int main() { int n = 5; struct Student arr[n]; //student 1 arr[0].student_id = 1; arr[0].student_name = "Nupur"; arr[0].student_percentage = 98; //student 2 arr[1].student_id = 2; arr[1].student_name = "Akash"; arr[1].student_percentage = 75; //student 3 arr[2].student_id = 3; arr[2].student_name = "Yash"; arr[2].student_percentage = 62; //student 4 arr[3].student_id = 4; arr[3].student_name = "Jyoti"; arr[3].student_percentage = 87; //student 5 arr[4].student_id = 5; arr[4].student_name = "Ramlal"; arr[4].student_percentage = 80; printf("Unsorted Student Record:</p><p>"); for (int i = 0; i < n; i++) { printf("Id = %d, Name = %s, Age = %d </p><p>", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } qsort(arr, n, sizeof(struct Student), comparator); printf("</p><p></p><p>Student Records sorted by Name:</p><p>"); for (int i = 0; i < n; i++) { printf("Id = %d, Name = %s, Age = %d </p><p>", arr[i].student_id, arr[i].student_name, arr[i].student_percentage); } return 0; }
輸出
Unsorted Student Record: Id = 1, Name = Nupur, Age = 98 Id = 2, Name = Akash, Age = 75 Id = 3, Name = Yash, Age = 62 Id = 4, Name = Jyoti, Age = 87 Id = 5, Name = Ramlal, Age = 80 Student Records sorted by Name: Id = 2, Name = Akash, Age = 75 Id = 4, Name = Jyoti, Age = 87 Id = 1, Name = Nupur, Age = 98 Id = 5, Name = Ramlal, Age = 80 Id = 3, Name = Yash, Age = 62
以上是C程式以結構體儲存學生記錄,並依姓名進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

本文將介紹如何在Windows11/10中根據拍攝日期對圖片進行排序,同時探討如果Windows未按日期排序圖片應該如何處理。在Windows系統中,合理整理照片對於方便尋找影像檔案至關重要。使用者可以根據不同的排序方式(如日期、大小和名稱)來管理包含照片的資料夾。此外,還可以根據需要設定升序或降序排列,以便更靈活地組織文件。如何在Windows11/10中按拍攝日期對照片進行排序要按在Windows中拍攝的日期對照片進行排序,請執行以下步驟:打開圖片、桌面或放置照片的任何資料夾在功能區選單中,單

Outlook提供了許多設定和功能,可協助您更有效地管理工作。其中之一是排序選項,可讓您根據需要對電子郵件進行分類。在這個教學中,我們將學習如何利用Outlook的排序功能,根據寄件者、主題、日期、類別或大小等條件對電子郵件進行整理。這將讓您更輕鬆地處理和查找重要訊息,提高工作效率。 MicrosoftOutlook是一個功能強大的應用程序,可以輕鬆地集中管理您的電子郵件和日曆安排。您可以輕鬆地發送、接收和組織電子郵件,而內建的日曆功能也讓您能夠輕鬆追蹤您即將面臨的活動和約會。如何在Outloo

PHP開發:如何實現表格資料排序和分頁功能在進行Web開發中,處理大量資料是一項常見的任務。對於需要展示大量資料的表格,通常需要實現資料排序和分頁功能,以提供良好的使用者體驗和最佳化系統效能。本文將介紹如何使用PHP實作表格資料的排序和分頁功能,並給出具體的程式碼範例。排序功能實作在表格中實作排序功能,可以讓使用者根據不同的欄位進行升序或降序排序。以下是一個實作表格

在這個問題中,一個字串被當作輸入,我們必須按字典順序對字串中出現的單字進行排序。為此,我們為字串中的每個單字(之間用空格區分)分配一個從1開始的索引,並以排序索引的形式獲得輸出。 String={“Hello”,“World”}“Hello”=1“World”=2由於輸入字串中的單字已按字典順序排列,因此輸出將列印為“12”。讓我們看看一些輸入/結果場景-假設輸入字串中的所有單字都相同,讓我們看看結果-Input:{“hello”,“hello”,“hello”}Result:3獲得的結

Java中的Arrays.sort()方法如何依照自訂比較器對陣列進行排序?在Java中,Arrays.sort()方法是一個非常有用的方法,可以對陣列進行排序。預設情況下,方法會依照升序排序。但是有時候,我們需要依照自己定義的規則來對陣列進行排序。這時,就需要用到自訂比較器(Comparator)。自訂比較器是一個實作了Comparator介面的類,

在C中,結構體和數組都用作數據類型的容器,即在結構體和數組中我們都可以存儲數據,也可以對它們執行不同的操作。基於內部實現,以下是兩者之間存在一些基本差異。 Sr.編號鍵結構數組1定義結構體可以定義為一種資料結構,用作容器,可以容納不同類型的變數。另一方面,數組是一種用作容器的資料結構,可以容納相同類型的變量,但不支援多種資料類型變數。 2記憶體分配輸入資料的記憶體分配結構不必位於連續的記憶體位置。而在數組的情況下,輸入資料儲存在連續的記憶體分配中,這意味著數組將資料儲存在分配連續記憶體區塊的記憶體模型中(即,具有

在我們的工作中,常常會用到wps軟體,wps軟體處理資料的方式方法是非常多的,而且函數功能也是非常強大的,我們常用函數來求平均值,求總和等,可以說只要是統計數據能用的方法,wps軟體庫裡都已經為大家準備好了,下面我們要介紹的是wps怎麼排序成績高低的操作步驟,看完以後大家可以藉鑑經驗。 1.先開啟需要排名的表格。如下圖所示。 2、然後輸入公式=rank(B2,B2:B5,0),一定要輸入0。如下圖所示。 3、輸入完公式以後,按下電腦鍵盤上的F4鍵,這一步驟操作是為了讓相對引用變成絕對引用。

Golang中結構體強轉是將一種結構體類型的值轉換為另一種類型。可以透過斷言強轉、反射強轉、指針間接強轉等技巧來實現。斷言強轉使用型別斷言,反射強轉使用反射機制,指標間接強轉避免值複製。具體步驟為:1.斷言強轉:使用typeassertion語法;2.反射強轉:使用reflect.Type.AssignableTo和reflect.Value.Convert函數;3.指標間接強轉:使用指標解引用。
