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$
    */

希望多多支持!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39004632/article/details/84822776
今日推荐