输入整数n(1<=n<=10),再输入n个整数,输出最大值和最小值及其对应的下标,要求使用指针实现。
时间: 2024-12-20 11:29:49 浏览: 6
基于C++,写一个程序 要求用户输入10个数据到数组中,然后将数组中最大值和最小值显示出来,并显示下标
在C++中,你可以使用指针数组来存储输入的整数,并通过两个指针分别指向数组的第一个元素(即最小值候选)和最后一个元素(即最大值候选),然后遍历整个数组来找到最大值、最小值以及它们的索引。以下是简单的步骤:
1. 初始化指针 `min_ptr` 和 `max_ptr` 分别指向数组的开始,同时保存一个变量 `min_val` 和 `max_val` 用于记录当前找到的最小值和最大值,`min_index` 和 `max_index` 存储它们的下标,初始都设为0。
2. 使用一个 `for` 循环,从第一个元素遍历到倒数第二个元素:
```cpp
for (int i = 0; i < n - 1; i++) {
// 检查是否找到了新的最小值
if (*min_ptr > arr[i]) {
min_ptr = &arr[i];
min_val = arr[i];
min_index = i;
}
// 检查是否找到了新的最大值
if (*max_ptr < arr[i]) {
max_ptr = &arr[i];
max_val = arr[i];
max_index = i;
}
}
```
3. 遍历结束后,因为`max_ptr` 最终会指向最大值,所以不需要额外检查最后一个元素,因为它肯定不是最大值。同样地,`min_ptr` 就是最小值的地址。
4. 输出结果,如`cout << "最大值:" << *max_ptr << " 下标:" << max_index << endl;` 和`cout << "最小值:" << *min_ptr << " 下标:" << min_index << endl;`.
阅读全文