1. 程式人生 > >C語言:對結構體變數進行氣泡排序

C語言:對結構體變數進行氣泡排序

C語言:對結構體變數進行氣泡排序

我是一名在校大學生,初次寫部落格,希望各位大佬不喜勿噴,這個小程式,僅供參考,希望對大家有所幫助。

分析題意:
1.定義結構體變數,並給變數賦值
2.使用氣泡排序進行排序。
定義:
1.Input()函式,接收使用者輸入的值。
2.Output()函式,輸出排序結果。
3.SortBubble()函式,氣泡排序。
4.Swap()函式,交換兩個數的值。

#include <stdio.h>
    
    struct Books
    {
    	int Number;
    	char Name[10];
    	char
Author[10]; int Price; }; //----------宣告---------- void Input(Books *book,int n); void Output(Books book[],int n); void SortBubble(Books book[],int n); inline void Swap(Books *a,Books *b); int main() { Books book1[4]={1,"資料結構","A老師",50}; Input(book1,4
); SortBubble(book1,4); Output(book1,4); return 0; } //----------輸入---------- void Input(Books *book,int n) { printf("請輸入book的資訊:\n"); for(int i=1;i<n;i++) { scanf("%d %s %s %d",&book[i].Number,&book[i].Name,&book[i].Author,&book[i]
.Price); } } //----------輸出---------- void Output(Books book[],int n) { for(int i=0;i<n;i++) { printf("book的資訊:%d %s %s %d$\n",book[i].Number,book[i].Name,book[i].Author,book[i].Price); } } //----------冒泡---------- void SortBubble(Books book[],int n) { printf("按照價格排序:\n"); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { if(book[j].Price>book[j+1].Price) Swap(&book[j],&book[j+1]); } } } //----------交換---------- inline void Swap(Books *a,Books *b) { Books temp; temp=*a; *a=*b; *b=temp; } /* //----------樣例輸入---------- 2 資料結構 B老師 35 3 演算法設計 C老師 40 4 線性代數 D老師 70 //----------樣例輸出---------- 按照價格排序: book的資訊:2 資料結構 B老師 35$ book的資訊:3 演算法設計 C老師 40$ book的資訊:1 資料結構 A老師 50$ book的資訊:4 線性代數 D老師 70$ */

希望多多支援!
在這裡插入圖片描述