C語言:對結構體變數進行氣泡排序
阿新 • • 發佈:2019-01-05
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$
*/
希望多多支援!