39 lines
1.3 KiB
C
39 lines
1.3 KiB
C
// 头文件
|
||
#include <stdio.h>
|
||
|
||
// 水果信息结构体
|
||
struct fruitinfo {
|
||
int id; // 编号(整型)
|
||
char name[21]; // 名称(字符串,最多20个字符)
|
||
float sales; // 销量(浮点型)
|
||
float price; // 单价(浮点型)
|
||
};
|
||
|
||
// 主函数
|
||
int main() {
|
||
// 声明6个水果信息结构体变量,存储6种水果的信息
|
||
struct fruitinfo fruit[6];
|
||
|
||
// 输入6种水果的信息
|
||
for (int i = 0; i < 6; i++) {
|
||
scanf("%d %s %f %f", &fruit[i].id, fruit[i].name, &fruit[i].sales, &fruit[i].price);
|
||
}
|
||
|
||
// 冒泡排序(按照销售额从小到大排序)
|
||
for (int i = 0; i < 6; i++) {
|
||
for (int j = 0; j < 5 - i; j++) {
|
||
if (fruit[j].sales * fruit[j].price > fruit[j + 1].sales * fruit[j + 1].price) { // 如果前一个水果的总销售额(销量*单价)大于后一个水果的总销售额
|
||
struct fruitinfo temp = fruit[j]; // 则交换两个水果的位置
|
||
fruit[j] = fruit[j + 1];
|
||
fruit[j + 1] = temp;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 输出排好序的6种水果的信息
|
||
for (int i = 0; i < 6; i++) {
|
||
printf("%d %s %.2f %.2f\n", fruit[i].id, fruit[i].name, fruit[i].sales, fruit[i].price);
|
||
}
|
||
|
||
return 0;
|
||
} |