L1-063 吃鱼还是吃肉 (10分)
题目要求: 国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。
现在你要根据小宝宝的身高体重,给出补充营养的建议。
输入格式: 输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:
性别 身高 体重 其中性别是 1 表示男生,0 表示女生。身高和体重都是不超过 200 的正整数。
输出格式: 对于每一位宝宝,在一行中给出你的建议:
如果太矮了,输出:duo chi yu!(多吃鱼); 如果太瘦了,输出:duo chi rou!(多吃肉); 如果正标准,输出:wan mei!(完美); 如果太高了,输出:ni li hai!(你厉害); 如果太胖了,输出:shao chi rou!(少吃肉)。 先评价身高,再评价体重。两句话之间要有 1 个空格。
输入样例: 4 0 130 23 1 129 27 1 130 30 0 128 27 输出样例: ni li hai! duo chi rou! duo chi yu! wan mei! wan mei! shao chi rou! duo chi yu! shao chi rou!
解题思路: 定义一个结构体,存储宝宝的相关信息。将男宝宝和女宝宝的判断分别写成两个函数,函数的返回值为一个装有相应评价的 string 字符串。注意两个评价之间有一个空格。
通关代码:
代码语言:javascript复制#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct man {
int _gender;
int _height;
int _weight;
};
string girl(man baby) {
string advice;
if (baby._height > 129) {
advice = "ni li hai!";
} else if (baby._height == 129) {
advice = "wan mei!";
} else {
advice = "duo chi yu!";
}
advice = " ";
if (baby._weight > 25) {
advice = "shao chi rou!";
} else if (baby._weight == 25) {
advice = "wan mei!";
} else {
advice = "duo chi rou!";
}
return advice;
}
string boy(man baby) {
string advice;
if (baby._height > 130) {
advice = "ni li hai!";
} else if (baby._height == 130) {
advice = "wan mei!";
} else {
advice = "duo chi yu!";
}
advice = " ";
if (baby._weight > 27) {
advice = "shao chi rou!";
} else if (baby._weight == 27) {
advice = "wan mei!";
} else {
advice = "duo chi rou!";
}
return advice;
}
int main() {
int n;
man baby;
vector<man> arr;
cin >> n;
for (int i = 0; i < n; i ) {
cin >> baby._gender;
cin >> baby._height;
cin >> baby._weight;
arr.push_back(baby);
}
int MAX = arr.size();
for (int i = 0; i < MAX; i ) {
if (arr[i]._gender == 1) {
cout << boy(arr[i]) << endl;
} else {
cout << girl(arr[i]) << endl;
}
}
return 0;
}
通关截图: