1.编写重载函数max1可分别求取2个整数、3个整数、2个双精度数、3个双精度数的最大值。 2.用new操作为一个包含10个整数的数组分配内存,输入若干个值到数组中,分别统计其中正数和负数的个数后再用delete操作释放内存。(c++)
时间: 2024-10-07 08:08:31 浏览: 52
1. 在C++中,你可以通过重载函数来实现`max1`的不同版本,以便处理不同类型的参数。这里是一个例子:
```cpp
#include <iostream>
using namespace std;
// 版本一:2个整数
int max1(int a, int b) {
return (a > b) ? a : b;
}
// 版本二:3个整数
int max1(int a, int b, int c) {
return max(max(a, b), c);
}
// 版本三:2个double
double max1(double a, double b) {
return (a > b) ? a : b;
}
// 版本四:3个double
double max1(double a, double b, double c) {
return max(max(a, b), c);
}
// 调用示例:
int main() {
cout << "Max of two integers: " << max1(5, 10) << endl;
cout << "Max of three integers: " << max1(1, 2, 3) << endl;
cout << "Max of two doubles: " << max1(1.5, 2.7) << endl;
// 更多版本可以类似地添加...
return 0;
}
```
2. 对于动态数组,首先需要定义结构体并分配内存,然后读取输入并统计正负数:
```cpp
#include <iostream>
using namespace std;
struct ArrayStats {
int positiveCount;
int negativeCount;
};
void processArray(int* arr, int size) {
ArrayStats stats = {0, 0};
for (int i = 0; i < size; i++) {
if (arr[i] > 0) {
stats.positiveCount++;
} else if (arr[i] < 0) {
stats.negativeCount++;
}
}
cout << "Positive numbers: " << stats.positiveCount << endl;
cout << "Negative numbers: " << stats.negativeCount << endl;
}
int main() {
int arraySize = 10;
int* myArray = new int[arraySize];
// 读取用户输入并存储到数组
for (int i = 0; i < arraySize; i++) {
cin >> myArray[i];
}
processArray(myArray, arraySize);
delete[] myArray; // 释放内存
return 0;
}
```
阅读全文