【问题描述】水果信息:种类,产地,重量,等级。其中,等级是根据重量大于等于100为A,小于100为B.
按水果种类将不同种类的水果信息分别放入不同数组中(需要动态数组的定义)
输出每种水果中重量最大的水果信息。
请使用结构体定义水果信息
【输入形式】第一行输入整数n,表示将输入的水果信息数目
接下来每行为:种类,产地,重量
【输出形式】输出每种水果中重量最大的水果信息
【样例输入】7
orange sichuan 104
apple liaoning 110
peach shandong 99
apple guangdong 90
apple liaoning 180
peach shandong 77
orange fujian 94
【样例输出】orange sichuan 104 A
apple liaoning 180 A
peach shandong 99 B
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Fruit
{
char name[20];
char area[20];
int fare;
char level;
};
int main()
{
int num = 0, a[10] = { 0 }, p = 0, i = 0, j = 0;
scanf("%d", &num);
struct Fruit* Fruits = (struct Fruit*)malloc(num * sizeof(struct Fruit));
for (i = 0; i < num; i++)
{
scanf("%s%s%d", Fruits[i].name, Fruits[i].area, &Fruits[i].fare);
if (Fruits[i].fare >= 100)
{
Fruits[i].level = 'A';
}
else
{
Fruits[i].level = 'B';
}
}
for (i = 0; i < num; i++)
{
p = i;
for (j = 0; j < num; j++)
{
if ((strcmp(Fruits[i].name, Fruits[j].name) == 0) && (Fruits[i].fare < Fruits[j].fare))
{
p = j;
}
}
if (a[p] != 1)
{
printf("%s %s %d %c\n", Fruits[p].name, Fruits[p].area, Fruits[p].fare, Fruits[p].level);
a[p] = 1;
}
}
return 0;
}