c语言struct book { char strName[100]; // 图书名称 int nQuantity; // 图书销量(册数) float fPrice; // 图书单价 double fSales; // 图书销售额 }; 定义一个结构体数组,输入五本书的信息(图书销售额 = 图书销量 * 单价),然后按照图书销量排序,输出排序结果;再按照图书销售额排序,输出排序结果。
时间: 2023-06-10 11:06:28 浏览: 129
图书信息管理系统(C语言)(结构体数组)
5星 · 资源好评率100%
以下是实现该功能的C代码:
```c
#include <stdio.h>
#include <string.h>
struct book {
char strName[100]; // 图书名称
int nQuantity; // 图书销量(册数)
float fPrice; // 图书单价
double fSales; // 图书销售额
};
int main() {
struct book books[5];
// 输入图书信息
for (int i = 0; i < 5; i++) {
printf("请输入第%d本书的名称:", i+1);
scanf("%s", books[i].strName);
printf("请输入第%d本书的销量(册数):", i+1);
scanf("%d", &books[i].nQuantity);
printf("请输入第%d本书的单价:", i+1);
scanf("%f", &books[i].fPrice);
// 计算销售额
books[i].fSales = books[i].nQuantity * books[i].fPrice;
}
// 按照销量排序
for (int i = 0; i < 5 - 1; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (books[j].nQuantity < books[j+1].nQuantity) {
struct book temp = books[j];
books[j] = books[j+1];
books[j+1] = temp;
}
}
}
// 输出按照销量排序后的结果
printf("按照销量排序后的结果:\n");
for (int i = 0; i < 5; i++) {
printf("图书名称:%s,销量:%d,单价:%.2f,销售额:%.2f\n",
books[i].strName, books[i].nQuantity, books[i].fPrice, books[i].fSales);
}
// 按照销售额排序
for (int i = 0; i < 5 - 1; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (books[j].fSales < books[j+1].fSales) {
struct book temp = books[j];
books[j] = books[j+1];
books[j+1] = temp;
}
}
}
// 输出按照销售额排序后的结果
printf("按照销售额排序后的结果:\n");
for (int i = 0; i < 5; i++) {
printf("图书名称:%s,销量:%d,单价:%.2f,销售额:%.2f\n",
books[i].strName, books[i].nQuantity, books[i].fPrice, books[i].fSales);
}
return 0;
}
```
运行程序,输入五本书的信息后,程序会先按照销量排序,然后按照销售额排序,输出排序结果。
阅读全文