永发信息网

C语言:求矩阵中行和列的最值

答案:4  悬赏:70  手机版
解决时间 2021-04-06 11:17
C语言:求矩阵中行和列的最值
最佳答案
#include
int main()
{
int i,j,tem,m,n,a[500][500];


int rmax,cmax;


scanf("%d%d",&m,&n);


for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);


for(i=0;i{
rmax=0;
for(j=0;jif(a[i][j]>rmax) rmax=a[i][j];
printf("The max number of the %d row is %d\n",i+1,rmax);

}

for(j=0;j{
cmax=0;
for(i=0;iif(a[i][j]>cmax)cmax=a[i][j];
printf("The max number of the %d column is %d\n",j+1,cmax);

}

return 0;
}
全部回答
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
int max_hang(int ar[][100],int);
int min_hang(int ar[][100],int);
int max_lie(int ar[][100],int);
int min_lie(int ar[][100],int);
int i,j;
void main()
{
int a[100][100];
int n,m;
printf("输入矩阵的行数和列数:");
scanf("%d %d",&i,&j);
printf("输入矩阵:\n");
for(n = 0;n < i;n++)
for(m = 0;m < j;m++)
scanf("%d",a[n]+m);
for(n = 0;n < i;n++)
printf("第%d行的最大值是:%d\n第%d行的最小值是:%d\n",n+1,max_hang(a,n),n+1,min_hang(a,n));
for(m = 0;m < j;m++)
printf("第%d列的最大值是:%d\n第%d列的最小值是:%d\n",m+1,max_lie(a,m),m+1,min_lie(a,m));
system("pause");
}
int max_hang(int ar[][100],int n)
{
int max_h = ar[n][0];
int index;
for(index = 1;index < j;index++)
if(max_h < ar[n][index])
max_h = ar[n][index];
return max_h;
}
int min_hang(int ar[][100],int n)
{
int min_h = ar[n][0];
int index;
for(index = 1;index < j;index++)
if(min_h > ar[n][index])
min_h = ar[n][index];
return min_h;
}
int max_lie(int ar[][100],int n)
{
int max_l = ar[0][n];
int index;
for(index = 1;index < i;index++)
if(max_l < ar[index][n])
max_l = ar[index][n];
return max_l;
}
int min_lie(int ar[][100],int n)
{
int min_l= ar[0][n];
int index;
for(index = 1;index < i;index++)
if(min_l > ar[index][n])
min_l = ar[index][n];
return min_l;
}
typedef struct
{
int **p;
int m,n;
}Mat;
//创建和初始化,通过数组,可以把一维数组,二维数组的第一维的手指针传入
Mat *CreateMat(int m,int n,int *value)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
mat->p[i][j]=value[i*n+j];
}
mat->n=n;
mat->m=m;
return m;
}
//通过二维指针创建和初始化
Mat *CreateMatPtrPtr(int n,int n,int **value)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
mat->p[i][j]=value[i][j];
}
mat->n=n;
mat->m=m;
return mat;
}
//没赋值的矩阵
Mat *CreateMatOnly(int m,int n,int *value)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
mat->n=n;
mat->m=m;
return mat;
}
//全同数值矩阵
Mat *CreateMatVal(int m,int n,int value)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
mat->p[i][j]=value;
}
mat->n=n;
mat->m=m;
return mat;
}
//0 矩阵
Mat *CreateMatZero(int m,int n,int value)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
mat->p[i][j]=0;
}
mat->n=n;
mat->m=m;
return mat;
}
//1 矩阵
Mat *CreateMatE(int m,int n)
{
Mat *mat;
mat =( Mat *)malloc sizeof(Mat);
mat->p=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
{
mat->p[i]=(int *)malloc(n*sizeof(int));
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
mat->p[i][j]=1;
}
mat->n=n;
mat->m=m;
return mat;
}
//删除
void DelMat(Mat** mat)
{
for(int i=0;i<m;i++)
{
free(*mat->p[i]);
}
free(*mat->p);
free(*mat);
*mat=NULL;
}

void MaxMinOfRaw(const Mat* mat,int *min_val,int *max_val)
{
int mi,ma;
if(!mat)return;
if(!min_value)return;
if(!max_value)return;
for(int i=0;i<m;i++)
{
mi=ma=mat->p[i][0];
for(int j=1;j<n;j++)
{
if(mi<mat->p[i][j])mi= mat->p[i][j];
}
min_val[i]=mi;
max_val[i]=ma;
}
}

void MaxMinOfCol(const Mat* mat,int *min_val,int *max_val)
{
int mi,ma;
if(!mat)return;
if(!min_value)return;
if(!max_value)return;
for(int i=0;i<n;i++)
{
mi=ma=mat->p[0][i];
for(int j=1;j<m;j++)
{
if(mi<mat->p[j][i])mi= p[j][i];
}
min_val[i]=mi;
max_val[i]=ma;
}
}
一次游历能求出来,标记好即可
int a[N][M];
int i,j;
int imax[M],imin[M],jmax[N],jmin[N];
赋值好a的数据,这个不写了
for(i=0;i<M;i++) //行的第一个数赋值给imax和imin
imax[i]=imin[i]=a[i][0];
for(i=0;i<N;i++) //列的第一个数赋值给imax和imin
imax[i]=imin[i]=a[0][i];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
{
if(imax[i]<)//比较赋值即可
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐一本同学写的小说《穿梭时空的人与狗》!
关于网球的动漫语录,关于网球的动漫 5分
中山小榄到江门荷塘镇,什么路线比较方便点?
关于公司派出国培训后补签协议,我可以拒签吗
四川省资中县孟塘镇梨树村修混凝土路面用的材
建平到大连高速费多少
现代医学证明,人类牙齿由一层称为碱式磷酸钙
“VI” 、“SI”、“MI”、“BI”和“CIS”分
起步的时候把钥匙扭到ON的时候听到滋~~的响声
发电厂有几种变压器?列如:主变压器,启配变
如何回答你有多喜欢我,情人有多喜欢你?
---What are you going to be when you grow&
revit mep2014 对象样式在哪里
郑强你为什么读大学,没有郑强的贵大还有原来
静园这个地址在什么地方,我要处理点事
推荐资讯
单选题The child _____ escaped&n
橡胶填充油是一种什么油
1985年属牛与1987年属兔的配吗?
RO里3洞拳刃打沙漠怪爆?
您的ipad被设置为静音请取消静音开关
老款捷达改导航,我不想用了怎么改回来
农村卖煤需要什么手续,开煤炭增值税发票需要
要保证“十二五”开局之年开好头,2011年既要
是什么原因引起的打饱嗝
老妈要开个美甲纹眉店,想起个古风名字,求大
单选题小华是一个追求上进的学生,在一次期末
GTA4资料片怎么修改警笛的声音???
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?