主页 > 互联网  > 

L1-031到底是不是太胖了

L1-031到底是不是太胖了

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到底是不是太胖了