无循环无数组实现C++输入5整数求最值及首次出现位置
实现要求:无循环无数组的5整数最值及首次位置统计
问题分析
需要依次读取5个整数,每输入一个就实时更新当前的最小值、最大值及它们的首次出现位置,禁止使用循环和数组,仅用if/else完成逻辑。核心是逐个处理输入值,用变量保存当前状态,避免事后遍历比较。
完整代码实现
#include <iostream> using namespace std; int main() { int num, min_val, max_val, min_pos, max_pos; // 处理第一个输入 cout << "Enter number 1: "; cin >> num; min_val = num; max_val = num; min_pos = 1; max_pos = 1; // 处理第二个输入 cout << "Enter number 2: "; cin >> num; if (num < min_val) { min_val = num; min_pos = 2; } else if (num > max_val) { max_val = num; max_pos = 2; } // 处理第三个输入 cout << "Enter number 3: "; cin >> num; if (num < min_val) { min_val = num; min_pos = 3; } else if (num > max_val) { max_val = num; max_pos = 3; } // 处理第四个输入 cout << "Enter number 4: "; cin >> num; if (num < min_val) { min_val = num; min_pos = 4; } else if (num > max_val) { max_val = num; max_pos = 4; } // 处理第五个输入 cout << "Enter number 5: "; cin >> num; if (num < min_val) { min_val = num; min_pos = 5; } else if (num > max_val) { max_val = num; max_pos = 5; } // 输出结果 cout << "\nMinimum value: " << min_val << " (First appeared at position " << min_pos << ")\n"; cout << "Maximum value: " << max_val << " (First appeared at position " << max_pos << ")\n"; return 0; }
代码说明
- 第一个输入直接初始化
min_val、max_val及对应的位置,因为这是第一个值,自然是当前的最值。 - 后续每个输入值仅与当前保存的最值比较:
- 若小于当前最小值,更新最小值和其位置为当前输入的序号
- 若大于当前最大值,更新最大值和其位置为当前输入的序号
- 等于最值时不做任何更新,确保保留首次出现的位置
- 完全符合题目要求:每输入一个数立即更新状态,无循环、无数组,仅用
if/else逻辑。
示例运行
输入:
Enter number 1: 10
Enter number 2: 5
Enter number 3: 15
Enter number 4: 5
Enter number 5: 20输出:
Minimum value: 5 (First appeared at position 2)
Maximum value: 20 (First appeared at position 5)
内容的提问来源于stack exchange,提问作者JustAHuman
相关产品推荐
相关产品推荐

