找最大数 两种方法编写程序,创建包含10个数的数组,使用循环语句为数组赋值,输出其中最大值及对应的元素下标。考虑整型、小数、字符等不同类型数组的情况。方法1函数原型:intgetMaxIndex(inta[]intsize=10) int getMaxIndex(doublea[]intsize=10): int getMaxIndex(charaintsize=10); 方法2函数模板原型: template<typenameT> int getMaxIndex(Ta[]intsize=10);
时间: 2024-02-13 18:04:22 浏览: 75
方法1的实现:
```c++
#include <iostream>
using namespace std;
int getMaxIndex(int a[], int size = 10) {
int max = a[0];
int index = 0;
for (int i = 1; i < size; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
return index;
}
int getMaxIndex(double a[], int size = 10) {
double max = a[0];
int index = 0;
for (int i = 1; i < size; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
return index;
}
int getMaxIndex(char a[], int size = 10) {
char max = a[0];
int index = 0;
for (int i = 1; i < size; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
return index;
}
int main() {
int a[] = {1, 5, 3, 7, 2, 4, 9, 6, 8, 10};
double b[] = {1.1, 5.5, 3.3, 7.7, 2.2, 4.4, 9.9, 6.6, 8.8, 10.0};
char c[] = {'a', 'e', 'c', 'g', 'b', 'd', 'i', 'f', 'h', 'j'};
cout << "int数组最大值的下标为:" << getMaxIndex(a) << endl;
cout << "double数组最大值的下标为:" << getMaxIndex(b) << endl;
cout << "char数组最大值的下标为:" << getMaxIndex(c) << endl;
return 0;
}
```
这个程序定义了三个重载函数,分别处理整型、小数和字符类型的数组,并且都有一个默认参数size=10,表示数组的大小为10。这三个函数的实现都是类似的,用for循环遍历数组,找到最大值和对应的下标,最后返回下标即可。在主函数中定义三个数组,并分别调用这三个函数,输出最大值的下标。
方法2的实现:
```c++
#include <iostream>
using namespace std;
template<typename T>
int getMaxIndex(T a[], int size = 10) {
T max = a[0];
int index = 0;
for (int i = 1; i < size; i++) {
if (a[i] > max) {
max = a[i];
index = i;
}
}
return index;
}
int main() {
int a[] = {1, 5, 3, 7, 2, 4, 9, 6, 8, 10};
double b[] = {1.1, 5.5, 3.3, 7.7, 2.2, 4.4, 9.9, 6.6, 8.8, 10.0};
char c[] = {'a', 'e', 'c', 'g', 'b', 'd', 'i', 'f', 'h', 'j'};
cout << "int数组最大值的下标为:" << getMaxIndex(a) << endl;
cout << "double数组最大值的下标为:" << getMaxIndex(b) << endl;
cout << "char数组最大值的下标为:" << getMaxIndex(c) << endl;
return 0;
}
```
这个程序定义了一个函数模板getMaxIndex,使用typename关键字声明一个模板类型T,表示数组中元素的类型。这个函数也有一个默认参数size=10,表示数组的大小为10。这个函数的实现与方法1中的三个函数非常相似,也是用for循环遍历数组,找到最大值和对应的下标,最后返回下标即可。在主函数中定义三个数组,并分别调用这个函数,输出最大值的下标。
阅读全文