标题:怎样定义一个动态的二维数组,再求均值、求最大值?
只看楼主
Imagine_ima
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-1-10
结帖率:100%
已结贴  问题点数:20 回复次数:1 
怎样定义一个动态的二维数组,再求均值、求最大值?
不会搞T_T,许多bug,我小白一个,求大佬解答,我的程序是这样(能改好吗T_T):

#include <iostream>
using namespace std;
#include<iomanip>
using std::setw;

int max_a(int[][],int,int);
float mean_a(int[][],int,int);

int main()
{   int m,n;
    cout<<setw(8)<<"元素"<<setw(13)<<"数值"<<endl;
    cout<<"请输入二维数组的行数和列数"<<endl;
    cin>>m>>n;

    int myint[m][n];
    int sum=0;
    for(int j=0;j<m;j++)
         for(int i=0;i<n;i++)
    {

            myint[j][i]=j*i;
            sum=sum+myint[j][i];
                  
         cout<<"myint[" <<j <<"]" <<"["<< i <<"] "<<myint[j][i]<<"  ";
         cout<<endl;
    }

    cout<<"二维数组元素的总和为"<<sum<<endl;
    cout<<"二维数组元素的最大值为"<<max_a(myint[m][n],m,n)<<endl;
    cout<<"二维数组元素的平均值为"<<mean_a(myint[m][n],m,n)<<endl;

     return 0;
};
int max_a(int myint[m][n],int m,int n)
{
    int b=myint[0][0];
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
    {
        if(myint[i][j]>b)b=myint[i][j];
    };
    return b;
};



int mean_a(int myint[m][n],int m;int n)
{
    int d=0,e;
    for(int i=0;i<m;i++)
        for(int j=0;j<m;j++)
    {
        d=d+myint[i][j];
    };
    e=d/(m+n);
   return e;
}
搜索更多相关主题的帖子: 维数 int cout sum for 
2018-01-10 19:22
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:20 
假设定义二位动态数组 a[4][4]
int **a;
a = (int **)new int *[4];
for(int i = 0; i < 4; i++) {
    a[i] = new int [4];
}
这里的 4 可以换成变量或者常量
至于其他求最大值,按照普通的二维数组操作就行了,传参的时候 : void nameOfFunction(int **a, ...);

[此贴子已经被作者于2018-1-11 00:32编辑过]

2018-01-11 00:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484134-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022475 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved