输入一个数值n,确定一维数组的长度。接着输入n个整数后,返回其中的最大值以及所在位置,输出结果以空格隔开。请写出c++代码
时间: 2024-09-27 07:12:36 浏览: 33
这是一个常见的编程练习,涉及到动态内存分配、数组遍历以及寻找最大值及其索引。以下是一个简单的C++代码示例:
```cpp
#include <iostream>
using namespace std;
// 函数声明
void findMax(int* arr, int n, int& maxVal, int& maxIndex);
int main() {
int n;
cout << "请输入数组的长度: ";
cin >> n;
// 动态分配一维数组
int* arr = new int[n];
cout << "请输入" << n << "个整数: ";
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
int maxVal, maxIndex = 0;
findMax(arr, n, maxVal, maxIndex);
// 输出结果
cout << "最大值: " << maxVal << " 在位置: " << maxIndex + 1 << endl; // 注意数组索引从0开始,所以加1
// 释放动态内存
delete[] arr;
return 0;
}
// 寻找最大值及其索引的函数
void findMax(int* arr, int n, int& maxVal, int& maxIndex) {
maxVal = arr[0];
maxIndex = 0;
for (int i = 1; i < n; ++i) {
if (arr[i] > maxVal) {
maxVal = arr[i];
maxIndex = i;
}
}
}
```
在这个程序中,我们首先读取数组长度,然后动态创建一个大小为`n`的整数数组。用户输入数组元素后,调用`findMax`函数找到最大值及其索引。最后输出结果并释放动态分配的内存。
阅读全文