// 头文件 #include // 水果信息结构体 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; }