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-1;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$
*/
希望多多支持!