L1-031到底是不是太胖了
- 互联网
- 2025-09-14 22:15:04

L1-031 到底是不是太胖了 - 团体程序设计天梯赛-练习集 (pintia )
解题思路输入数据
首先从输入中读取正整数 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。如果输入的数据超出这个范围,程序的行为可能是未定义的,可能导致错误的结果。同时,检查输出的字符串格式是否与题目要求完全一致,包括大小写和标点符号等。
L1-031到底是不是太胖了由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“L1-031到底是不是太胖了”