定义一个结构体数组,输入五本书的信息(图书销售额 = 图书销量 * 单价),然后按照图书销量排序,输出排序结果;再按照图书销售额排序,输出排序结果。

解题思路:一个排序可以使用排序算法,定义一个struct book 结构体变量temp,用于排序中的交换;两个结构体变量可以直接赋值,如:list[i] = temp;


#include <stdio.h>

typedef struct book
{
    char name[20];
    float danjia, xse;
    int xiaol;
} BOOK;

int main()
{
    BOOK list[5], temp;
    int i, j;
    for (i = 0; i < 5; i++)
    {
        scanf("%s%f%d", list[i].name, &list[i].danjia, &list[i].xiaol);
        list[i].xse = list[i].xiaol * list[i].danjia;
    }

    for (i = 0; i < 4; i++)
    {
        for (j = i; j < 5; j++)
        {
            if (list[i].xse < list[j].xse)
            {
                temp = list[i];
                list[i] = list[j];
                list[j] = temp;
            }
        }
    }
    for (j = 0; j < 5; j++)
    {
        printf("%s %.2f %d %.2f\n", list[j].name, list[j].danjia, list[j].xiaol, list[j].xse);
    }

    return 0;
}