C++编程问题:自定义一个子函数求一个double型二维数组某一列的最大值,该二维数的行数和列数待定
如从键盘中输入行数5,列数3,并输入这15个数组元素,则doubleMax(Z,5,3,1)表示求这个5行3列的二维数组Z第1列元素的最大值;又如:从键盘中输入行数9,列...
如从键盘中输入行数5,列数3,并输入这15个数组元素,则double Max(Z,5,3,1)表示求这个5行3列的二维数组Z第1列元素的最大值;
又如:从键盘中输入行数9,列数7,并输入这63个数组元素,则double Max(Z,9,7,5)表示求这个9行7列的二维数组Z第7列元素的最大值;
总之:从键盘中输入行数M,列数N,并输入这(MxN)个数组元素,则double Max(Z,M,N,n)表示求这个M行N列的二维数组Z第n列元素的最大值;
有一个地方打错了,第四行那里是第5列 展开
又如:从键盘中输入行数9,列数7,并输入这63个数组元素,则double Max(Z,9,7,5)表示求这个9行7列的二维数组Z第7列元素的最大值;
总之:从键盘中输入行数M,列数N,并输入这(MxN)个数组元素,则double Max(Z,M,N,n)表示求这个M行N列的二维数组Z第n列元素的最大值;
有一个地方打错了,第四行那里是第5列 展开
1个回答
展开全部
#include<iostream.h>
double Max(double *z, int r, int c, int n){
double m=*(z+n);
int i;
for(i=1; i<r; i++)
if(*(z+i*c+n)>m)
m=*(z+i*c+n);
return m;
}
int main()
{
int row,col,i,j,n;
double *p,max;
cout <<"row=?";
cin >>row;
cout <<"col=?";
cin >>col;
p=new double[row*col];
for(i=0; i<row; i++)
for(j=0; j<col; j++){
cout <<"p[" <<i <<"][" <<j <<"]=?";
cin >>*(p+i*col+j);
}
cout <<"n=?";
cin >>n;
max=Max(p,row,col,n);
cout <<"max=" <<max <<endl;
return 0;
}
double Max(double *z, int r, int c, int n){
double m=*(z+n);
int i;
for(i=1; i<r; i++)
if(*(z+i*c+n)>m)
m=*(z+i*c+n);
return m;
}
int main()
{
int row,col,i,j,n;
double *p,max;
cout <<"row=?";
cin >>row;
cout <<"col=?";
cin >>col;
p=new double[row*col];
for(i=0; i<row; i++)
for(j=0; j<col; j++){
cout <<"p[" <<i <<"][" <<j <<"]=?";
cin >>*(p+i*col+j);
}
cout <<"n=?";
cin >>n;
max=Max(p,row,col,n);
cout <<"max=" <<max <<endl;
return 0;
}
追问
你这个Z他是二维数组吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询