基于new Bing加以修改过后的编写:
【法一】
#include <iostream>
using namespace std;
int getMaxIndex(int a[], int size=10);
int getMaxIndex(double a[], int size=10);
int getMaxIndex(char a[], int size=10);
int main() {
int choice;
cout << "请选择输入数据的类型:" << endl;
cout << "1. 整数" << endl;
cout << "2. 小数" << endl;
cout << "3. 字符" << endl;
cin >> choice;
if(choice == 1) {
int intArray[10];
cout << "请输入10个整数:" << endl;
for(int i = 0; i < 10; i++) {
cin >> intArray[i];
}
int max_idx = getMaxIndex(intArray);
cout << "整数数组的最大值为:" << intArray[max_idx] << ", index=" << max_idx << endl;
} else if(choice == 2) {
double doubleArray[10];
cout << "请输入10个小数:" << endl;
for(int i = 0; i < 10; i++) {
cin >> doubleArray[i];
}
int max_idx = getMaxIndex(doubleArray);
cout << "小数数组的最大值为:" << doubleArray[max_idx] << ", index=" << max_idx << endl;
} else if(choice == 3) {
char charArray[10];
cout << "请输入10个字符:" << endl;
for(int i = 0; i < 10; i++) {
cin >> charArray[i];
}
int max_idx = getMaxIndex(charArray);
cout << "字符数组的最大值为:" << charArray[max_idx] << ", index=" << max_idx << endl;
} else {
cout << "输入有误,请重新运行程序!" << endl;
}
return 0;
}
int getMaxIndex(int a[], int size) {
int max_idx = 0;
for(int i = 1; i < size; ++i) {
if(a[i] > a[max_idx]) {
max_idx = i;
}
}
return max_idx;
}
int getMaxIndex(double a[], int size) {
int max_idx = 0;
for(int i = 1; i < size; ++i) {
if(a[i] > a[max_idx]) {
max_idx = i;
}
}
return max_idx;
}
int getMaxIndex(char a[], int size) {
int max_idx = 0;
for(int i = 1; i < size; ++i) {
if(a[i] > a[max_idx]) {
max_idx = i;
}
}
return max_idx;
}
【法二】重构实现
#include <iostream>
using namespace std;
template<typename T>
int getMaxIndex(T a[], int size=10);
int main() {
int choice;
cout << "请选择输入数据的类型:" << endl;
cout << "1. 整数" << endl;
cout << "2. 小数" << endl;
cout << "3. 字符" << endl;
cin >> choice;
if(choice == 1) {
int intArray[10];
cout << "请输入10个整数:" << endl;
for(int i = 0; i < 10; i++) {
cin >> intArray[i];
}
int max_idx = getMaxIndex(intArray);
cout << "整数数组的最大值为:" << intArray[max_idx] << ", index=" << max_idx << endl;
} else if(choice == 2) {
double doubleArray[10];
cout << "请输入10个小数:" << endl;
for(int i = 0; i < 10; i++) {
cin >> doubleArray[i];
}
int max_idx = getMaxIndex(doubleArray);
cout << "小数数组的最大值为:" << doubleArray[max_idx] << ", index=" << max_idx << endl;
} else if(choice == 3) {
char charArray[10];
cout << "请输入10个字符:" << endl;
for(int i = 0; i < 10; i++) {
cin >> charArray[i];
}
int max_idx = getMaxIndex(charArray);
cout << "字符数组的最大值为:" << charArray[max_idx] << ", index=" << max_idx << endl;
} else {
cout << "输入有误,请重新运行程序!" << endl;
}
return 0;
}
template<typename T>
int getMaxIndex(T a[], int size) {
int max_idx = 0;
for(int i = 1; i < size; ++i) {
if(a[i] > a[max_idx]) {
max_idx = i;
}
}
return max_idx;
}