用new运算符动态分配一个长度为n的整型数组(n值由键盘输入),并给该数组随机赋上100以内的整数,输出数组。定义函数求数组的最大值,最大值由参数带回,调用求数组内最大值的这个函数,并输出最大值,最后删除所申请空间。
结果出现了这种错误。
仅供参考!
```c++
using namespace std;
// 申请动态数组
int* GetArray(int n)
{
int *array = new int[n];
for (int i = 0; i < n; i++)
{
array[i] = rand() % 100;
}
return array;
}
// 求数组最大值
int FindMax(int *array, int n) {
int max = array[0];
for (int i = 1; i < n; i++)
{
if (array[i] > max)
max = array[i]
; }
return max;
}
int main()
{
int n;
cout << "请输入数组长度:";
cin >> n;
int *array = GetArray(n);
cout << "数组元素:";
for (int i = 0; i < n; i++)
{
cout << array[i] << " ";
}
cout << endl;
int max = FindMax(array, n);
cout << "数组最大值:" << max << endl;
delete[] array;
array = NULL;
return 0;
}
```
你创建Ann对象时传参不符合类Ann要求的类型
你构造函数咋定义的啊?参数类型是什么呢?
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误可能是因为你在创建Ann对象时没有提供正确的构造函数参数。
根据你的问题描述,你应该需要一个可以接受整数数组的构造函数来创建Ann对象。假设你的Ann类如下所示:
class Ann {
public:
Ann(int* arr, int n) {
// 在构造函数中对数组进行操作
}
// 其他成员函数和数据成员
};
那么你可以按照以下方式使用new运算符来创建Ann对象:
int n;
std::cout << "请输入数组大小: ";
std::cin >> n;
// 动态分配长度为n的整型数组,并赋上100以内的随机整数
int* arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = rand() % 100;
}
// 创建Ann对象
Ann* ann = new Ann(arr, n);
// 调用求最大值函数
int max = ann->findMax();
std::cout << "最大值为: " << max << std::endl;
// 删除动态分配的数组和对象
delete[] arr;
delete ann;
请注意,在上面的示例代码中,findMax()是一个Ann类的成员函数,用于在数组中查找最大值并返回。你需要根据你自己的实现修改这个函数的定义和实现。
好的!!我发现我的问题!我删除了结构体!