有一个数组,内放10个整数,要求找出最大的数和它的下标,然后把它和数组中最前面的元素对换。C++编程
时间: 2024-10-25 20:18:01 浏览: 30
你可以使用C++编程中的迭代和条件语句来解决这个问题。下面是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
void swapMaxAndFirst(int arr[], int n) {
// 初始化最大值及其下标为第一个元素
int maxVal = arr[0], maxIndex = 0;
// 遍历数组查找最大值
for (int i = 1; i < n; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
maxIndex = i;
}
}
// 如果找到的最大值不是第一个元素,进行交换
if (maxIndex != 0) {
int temp = arr[maxIndex]; // 存储最大值
arr[maxIndex] = arr[0]; // 将最大值放到最前面
arr[0] = temp; // 最初的第一个元素移到原来的位置
} else {
cout << "Array already in order or all elements are same." << endl;
}
}
int main() {
int arr[] = {5, 9, 1, 7, 3, 8, 6, 2, 4, 10}; // 假设这是你的数组
int size = sizeof(arr) / sizeof(arr[0]);
cout << "Before swapping:" << endl;
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
swapMaxAndFirst(arr, size);
cout << "\nAfter swapping:" << endl;
for (int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
在这个程序中,`swapMaxAndFirst`函数首先初始化最大值为数组的第一个元素,然后遍历数组,如果发现更大的元素,就更新最大值和对应的索引。最后检查是否需要交换,若不需要则说明数组已经是有序或所有元素相等。
阅读全文