编写函数功能是交换数组中的最大数和最小数的位置并计算所有数之和。其中第一个整数为个数n后续为n个元素。例如数组a有5个元素3、4、1、5、2将最大数5和最小数1的位置交换后得到3、4、5、1、2总和为15。c++
以下是一个实现该功能的C++函数的例子:
#include <iostream>
#include <vector>
std::vector<int> swapMaxMin(std::vector<int> arr) {
int minIndex = 0;
int maxIndex = 0;
int sum = 0;
for (int i = 0; i < arr.size(); i++) {
sum += arr[i];
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
int temp = arr[minIndex];
arr[minIndex] = arr[maxIndex];
arr[maxIndex] = temp;
std::cout << "交换后的数组为: ";
for (int i = 0; i < arr.size(); i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
std::cout << "数组总和为: " << sum << std::endl;
return arr;
}
int main() {
int n;
std::cout << "请输入数组元素个数:";
std::cin >> n;
std::vector<int> arr(n);
std::cout << "请输入数组元素:";
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}
swapMaxMin(arr);
return 0;
}
这个例子中,首先输入数组的元素个数n,然后输入n个元素值。然后调用swapMaxMin函数,该函数会计算数组中的最大值和最小值的位置,并将它们交换。最后,函数会输出交换后的数组和数组的总和。
原文地址: https://www.cveoy.top/t/topic/i5Vf 著作权归作者所有。请勿转载和采集!