解题思路:一个排序可以使用排序算法,定义一个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;
}