_Phoebe__ 2022-04-17 14:58 采纳率: 96.9%
浏览 9
已结题

二维数组传参传不过去想知道怎么改

编写函数找出二维数组(5*4)中元素的最大值与最小值,并返回其最大值与最小值。测试结果。


#include<bits/stdc++.h>
using namespace std;
void fun(int data[5][4])
{
    int max=data[0][0];
    int min=data[0][0];
    for(int i=0;i<5;i++){
        for(int j=0;j<4;j++){
            if(data[i][j]>max)
             max=data[i][j];
            if(data[i][j]<min)
             min=data[i][j];
        }
    }
    cout<<"max:"<<max<<endl;
    cout<<"min:"<<min<<endl;
}
int main()
{
    int a[1024][1024]={0};
    for(int i=0;i<5;i++){
        for(int j=0;j<4;j++){
            cin>>a[i][j];
    }
}
    fun(a);
    return 0;
}


  • 写回答

1条回答 默认 最新

  • bostonAlen 2022-04-17 16:58
    关注

    二维数组传递函数参数列必须固定
    a[1024][1024]改成a[1024][4]

    void fun(int data[5][4]);
    void fun(int data[][4]);
    下面这样就是错误的
    void fun(int data[][]);

    #include<iostream>
    using namespace std;
    void fun(int data[5][4])
    {
        int max = data[0][0];
        int min = data[0][0];
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 4; j++) {
                if (data[i][j] > max)
                    max = data[i][j];
                if (data[i][j] < min)
                    min = data[i][j];
            }
        }
        cout << "max:" << max << endl;
        cout << "min:" << min << endl;
    }
    int main()
    {
        int a[1024][4] = { 0 };
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 4; j++) {
                cin >> a[i][j];
            }
        }
        fun(a);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月17日