酷代码 AI
菜单
服务商

用for if语句完成c++题目:桃子唱了一首歌曲,她想计算整首歌曲的美妙度,具体来说,她需要找到n个数字中的最大值和最小值,并计算最大值除以最小值的结果。 输入: 共两行。 第一行为一个整数n(n<100),表示音符的数量。 第二行为n个整数a[i],表示每个音符的美妙度。(0 < ai < 1000) 输出: 一个小数,表示整首歌曲的美妙度。

```cpp #include <iostream> #include <iomanip> int main() { int n; // 读取音符的数量 std::cin >> n; int maxBeauty = 0; int minBeauty = 1000; int currentBeauty; // 循环读取每个音符的美妙度 for (int i = 0; i < n; i++) { std::cin >> currentBeauty; // 判断当前美妙度是否大于最大值,若是则更新最大值 if (currentBeauty > maxBeauty) { maxBeauty = currentBeauty; } // 判断当前美妙度是否小于最小值,若是则更新最小值 if (currentBeauty < minBeauty) { minBeauty = currentBeauty; } } // 计算美妙度,将最大值转换为double类型避免整数除法 double songBeauty = static_cast<double>(maxBeauty) / minBeauty; // 输出结果,保留两位小数 std::cout << std::fixed << std::setprecision(2) << songBeauty << std::endl; return 0; } ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 注意输入的数字范围,本题要求 `0 < ai < 1000` 且 `n < 100`,如果输入不符合要求可能导致结果不准确或者程序出现异常。 2. 在进行除法运算时,要确保使用浮点数类型进行计算,否则使用整数相除会直接舍弃小数部分,导致结果错误。 3. 输出结果时,根据题目要求设置输出精度,本题需要输出小数,要使用 `std::fixed` 和 `std::setprecision` 来保证输出格式符合要求。 [2025-11-28 19:21:21 | AI写代码神器 | 403点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多