C语言, 乐乐在幼儿园认识了长方形,回到家里立刻翻出红色、绿色、黄色……等不同颜色的N张卡纸,用每张卡纸分别剪出了一个端端正正的长方形卡片。这N个长方形长短不一。乐乐想在其中一个卡片上粘贴老师奖励的小红花,可是乐乐不知道哪张长方形卡片面积最大,可以粘贴所有的小红花。\n 请你定义卡片的结构体类型,内含三个数据成员:颜色、长、宽。\n 并将输入的N个卡片信息存入结构体数组中。然后从这N张长方形卡片中挑选出面积最大的卡片,输出其颜色信息。\n 假定:面积最大的卡片只有一张。\n\n输入\n\n 输入包含N + 1行:\n 第一行是正整数N。\n 第二行到第N + 1行,每行都有如下三项,邻近两项之间用一个空格隔开。\n 1)一个不含空白符的卡片颜色字符串(不超过9个字符)。\n 2)一个int范围内的正整数(卡片长度)。\n 3)一个int范围内的正整数(卡片宽度)。\n\n输出\n\n 输出面积最大的卡片的颜色。\n\n输入示例\n\n 5\n red 12 8\n green 5 18\n yellow 11 9\n blue 7 15\n white 4 24\n\n输出示例\n\n blue\n\n数据范围\n\n 输入为int范围内的整数和字符串,输出为字符串,对于100%的数据,1 \u003C N \u003C 20
时间: 2023-06-30 13:13:18 浏览: 265
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
struct Card {
char color[10];
int length;
int width;
};
int main() {
int n;
scanf("%d", &n);
struct Card cards[n];
for (int i = 0; i < n; i++) {
scanf("%s %d %d", cards[i].color, &cards[i].length, &cards[i].width);
}
int max_area = -1;
int max_index = -1;
for (int i = 0; i < n; i++) {
int area = cards[i].length * cards[i].width;
if (area > max_area) {
max_area = area;
max_index = i;
}
}
printf("%s\n", cards[max_index].color);
return 0;
}
```
首先,我们定义了一个结构体 `Card`,包含三个数据成员:颜色、长度、宽度。
然后,我们用循环读入输入的N个卡片信息,存入结构体数组中。
接着,我们用循环遍历数组中每个卡片,计算其面积,并找出面积最大的卡片的下标。
最后,输出面积最大的卡片的颜色信息。
注意,我们初始化最大面积为-1,这是为了确保能够找到最大的面积,即使所有卡片的面积都是非正数。
阅读全文