首页 > 解决方案 > C++ 数组传递给具有大小的函数

问题描述

我正在编写C++代码以使用函数从整数数组中获取最大数。

我的代码如下,但它不起作用,我似乎无法修复它,如果可能的话,我想知道它有什么问题:

#include<iostream>
using namespace std;

int maxfunc(int myArr, int size);
int main()
{
    int size;
    cout<<"Enterv the size of array: "<<size;
    int *arr=new int [size];
    for(int i=0; i<size; i++)
    {
        cout<<"Value No. "<<i+1<<" : ";
        cin>>arr[i];
    }
    int max = maxfunc(arr,size);
    cout<<"max = "<<max;

}
int maxfunc(int myArr, int size)
{
    int largest=myArr[0];
    for(int i=1; i<size; i++)
    {
        if(largest<myArr[i])
        {
            largest=myArr[i];
        }
    }
    return largest;
}

标签: c++arraysmax

解决方案


int maxfunc(int myArr, int size)

该参数int myArr是一个整数,但您将其用作整数数组。我会使用指向原始数组的指针:

int maxfunc(int *myArr, int size)

另一个突出的问题是您使用的是size未初始化的变量,我的猜测是您缺少一个cin >> size;

cout<<"Enterv the size of array: ";
cin >> size;

最后,这是基于意见的,这是您将在 C 中使用的那种程序,对于 C++,有更好的工具来存储操作数据。对于这种情况,我建议std::vector或者如果数组具有固定大小,std::array.


推荐阅读