站长工具seo综合查询全面解析做pc端网站价位
L1-031 到底是不是太胖了 - 团体程序设计天梯赛-练习集 (pintia.cn)
解题思路
-
输入数据
-
首先从输入中读取正整数
n,表示要处理的人数。 -
然后通过循环
n次,每次读取一个人的身高h(单位:厘米)和实际体重w(单位:市斤)。
-
-
计算标准体重
-
根据题目中给出的标准体重计算公式,将身高
h减去 100 后乘以 0.9 得到以公斤为单位的标准体重,再乘以 2 转换为市斤。将计算结果存储在变量bz中。
-
-
判断身材状况
-
计算实际体重
w与标准体重bz的差值,即w - bz。 -
根据差值与标准体重的 10%(即bz * 0.1)的关系来判断身材状况:
-
如果
w - bz <= -bz * 0.1,说明实际体重比标准体重小超过 10%,输出 "You are tai shou le!"。 -
如果
w - bz >= bz * 0.1,说明实际体重比标准体重大超过 10%,输出 "You are tai pang le!"。 -
如果差值在标准体重的 10% 以内,即
-bz * 0.1 < w - bz < bz * 0.1,输出 "You are wan mei!"。
-
-
-
循环处理
-
重复上述步骤,直到处理完
n个人的数据。
-
代码
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;int h,w;for(int i=0;i<n;i++){cin>>h>>w;int bz=(h-100)*0.9*2;if(w-bz<=-bz*0.1){cout<<"You are tai shou le!"<<endl;}else if(w-bz>=bz*0.1){cout<<"You are tai pang le!"<<endl;}else{cout<<"You are wan mei!"<<endl;}}return 0;
}
注意
如果有测试点没有过,以下是一些可能的问题:
-
数据类型选择
-
代码中使用
int类型来存储身高h、体重w和标准体重bz。虽然在本题中输入的身高和体重是整数,但在计算标准体重(h - 100) * 0.9 * 2时,由于存在小数乘法0.9,使用int类型会导致小数部分被截断,可能影响计算的准确性。如果想要更精确的计算,可以考虑使用double类型。
-
-
条件判断逻辑
-
代码中的条件判断逻辑基本正确,但在处理边界情况时,可能存在一些潜在的问题。例如,当
w - bz恰好等于-bz * 0.1或bz * 0.1时,严格按照题目要求,完美身材的条件应该是|真实体重 − 标准体重| < 标准体重×10%,即不包含等于的情况。虽然在本题中可能测试数据没有覆盖到这种边界情况,但从逻辑严谨性角度考虑,可以将条件判断改为更严格的形式,如w - bz < -bz * 0.1和w - bz > bz * 0.1来判断太瘦和太胖的情况,中间部分判断为完美身材。
-
-
输入输出检查
-
确保输入的数据符合题目中规定的范围,即
120 < h < 200和50 < w <= 300。如果输入的数据超出这个范围,程序的行为可能是未定义的,可能导致错误的结果。同时,检查输出的字符串格式是否与题目要求完全一致,包括大小写和标点符号等。
-
