题目描述 从键盘上读入n个整数,从这n个整数中找出最大值和最小值,以及最大值和最小值的位置。 输入格式 第一行一个整数n(n<100); 第二行n个以空格相隔的整数(每个数在[1,1000])。 输出格式 第一行最大值和最大值的位置,它们之间以空格相隔; 第二行最小值和最小值的位置,它们之间以空格相隔;
时间: 2024-03-03 19:48:57 浏览: 68
好的,下面是题目的解题思路:
- 首先读入n个整数,用数组存储;
- 初始化最大值max、最小值min、最大值的位置maxIndex和最小值的位置minIndex为数组的第一个数,即nums[0];
- 遍历数组,如果当前数比最大值还大,更新最大值和最大值的位置;如果当前数比最小值还小,更新最小值和最小值的位置;
- 最后输出最大值、最大值的位置、最小值、最小值的位置。
下面是C++代码实现:
```cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int nums[n];
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
// 初始化最大值、最小值、以及它们的位置为数组的第一个数
int max = nums[0], min = nums[0], maxIndex = 0, minIndex = 0;
// 遍历数组,更新最大值、最小值以及它们的位置
for (int i = 1; i < n; i++) {
if (nums[i] > max) {
max = nums[i];
maxIndex = i;
}
if (nums[i] < min) {
min = nums[i];
minIndex = i;
}
}
// 输出结果
cout << max << " " << maxIndex << endl;
cout << min << " " << minIndex << endl;
return 0;
}
```
输入示例:
```
7
10 2 5 6 7 8 9
```
输出示例:
```
10 0
2 1
```
阅读全文