c语言编程求矩阵的最大值,最小值及所在的位置

另一题:求矩阵的两条对角线之和

#include<stdio.h>
int a[9][9]={{5,15,9,16,7,10,2,6,3,20}};

//最大值函数声明
int getmax(int *,int *);

//最小值函数声明
int getmin(int *,int *)

//主函数
void main(void)
{
int imax,jmax,imin,jmin;

printf("矩阵最大值为%d,位置为%d行,%d列;",getmax(&imax,&jmax),imax,jmax);

printf("最小值为%d,位置为%d行,%d列;",getmin(&imin,&jmin),imin,jmin);

printf("正对角线和为%d!",getlsum());

printf("反对角线和为%d!",getrsum());
}

//求最大值函数
int getmax(int * imax,int * jmax)
{
int max=0;
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(a[i][j]>max)
{
*imax=i;
*jmax=j;
max=a[i][j];
}
}
return max;
}

//求最小值函数
int getmin(int * imin,int * jmin)
{
int min=65535;
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
{
if(a[i][j]<min)
{
*imin=i;
*jmin=j;
min=a[i][j];
}
}
return min;
}

//求正对角线和函数
int getlsum()
{
int sum=0;
for(int i=0;i<9;i++)
sum+=a[i][i];
return sum
}

//求反对角线和函数
int getrsum()
{
int sum=0;
for(int i=0;i<9;i++)
sum+=a[i][9-i];
return sum;
}
程序写好了,放在一起的,公用一个主函数,如果不要显示哪个功能就把哪块干掉,如果这你都不会我就没办法了!!!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-26
最大值最小值,只是写算法
void maxmin(int a[m][n],int max[3],int min[3])
{
max[0] = a[0][0];max[1] = 0;max[2]= 0;//第一个元素放最大值,第二个元素放行,第三个元素放列;
min[0] = a[0][0];min[1] = 0;min[2] = 0;
for(i = 0;i < m;i ++)
for(J = 0 ; j<n; ++j)
{
if(a[i][j] > max[0]){ max[0] = a[i][j]; max[1] = i;max[2] =j;}
if(a[i][j] < min[0]){ min[0] = a[i][j]; min[1] = i;min[2] =j;}
}
}

对角线之和
int fsum(int a[n][n])
{
int sum = 0;
for(i = 0;i < n;i ++)
for(J = 0 ; j<n; ++j)
{
if(i == j|| i + j == n-1) sum +=a[i][j];
}
return sum;
}
第2个回答  2010-07-11
楼上的两位都写得不错!本回答被提问者采纳
相似回答