#include <stdio.h>
typedef struct {
char name[20];
float weight;
float value;
float ratio;
} Fruit;
void swap(Fruit *a, Fruit *b) {
Fruit temp = *a;
*a = *b;
*b = temp;
}
void sortFruits(Fruit fruits[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (fruits[j].ratio < fruits[j + 1].ratio) {
swap(&fruits[j], &fruits[j + 1]);
}
}
}
}
int main() {
Fruit fruits[4] = {
{"苹果", 15, 300},
{"香蕉", 18, 180},
{"橘子", 10, 150},
{"猕猴桃", 9, 270}
};
for (int i = 0; i < 4; i++) {
fruits[i].ratio = fruits[i].value / fruits[i].weight;
}
sortFruits(fruits, 4);
float maxWeight = 20;
float totalValue = 0;
printf("装入总价值最高为:\n");
for (int i = 0; i < 4; i++) {
if (fruits[i].weight <= maxWeight) {
maxWeight -= fruits[i].weight;
totalValue += fruits[i].value;
printf("装入 %s: %.2f kg\n", fruits[i].name, fruits[i].weight);
} else {
totalValue += maxWeight * fruits[i].ratio;
printf("装入 %s: %.2f kg\n", fruits[i].name, maxWeight);
break;
}
}
printf("总价为: %.2f\n", totalValue);
return 0;
}