C语言程序没有思路,请朋友讲解一下

下图为具体问题,请使用数组相关知识进行解答
,实在是没有什么思路,麻烦各位朋友能够提供代码

img

定义图书结构体,然后定义五个长度的结构体数组,输入后根据价格进行排序输出。

#include <stdio.h>
#include <string.h>
typedef struct _book
{
    char name[30];
    float price;
}book;

void input(book *b,int n)
{
    printf("输入5本书的名称和价格:\n");
    for(int i=0;i<n;i++)
        scanf("%s%f",b[i].name,&b[i].price);
}

void sortPrice(book *b,int n)
{
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-i-1;j++)
        {
            if(b[j].price > b[j+1].price)
            {
                book t = b[j];
                b[j] = b[j+1];
                b[j+1] = t;
            }
        }
    for(int i=0;i<n;i++)
        printf("%s\t%.1f\n",b[i].name,b[i].price);
}

void sortName(book *b,int n)
{
    for(int i=0;i<n-1;i++)
        for(int j=0;j<n-i-1;j++)
        {
            if(strcmp(b[j].name,b[j+1].name) > 0)
            {
                book t = b[j];
                b[j] = b[j+1];
                b[j+1] = t;
            }
        }
    for(int i=0;i<n;i++)
        printf("%s\t%.1f\n",b[i].name,b[i].price);
}

int main()
{
    book b[5];
    input(b,5);
    printf("\n");
    sortPrice(b,5);
    printf("\n");
    sortName(b,5);

    return 0;
}