用二维数组设置矩阵元素并求最大值元素的位置

程序用二维数组A[5][5]定义5×5矩阵,用for循环给矩阵赋初值。然后,调用函数确定矩阵的最大值元素并确定其位置。最后,调用另外一函数,给矩阵对角线元素赋值。

源程序

#define N  5
typedef int fix_matrix[N][N];      //fix_matrix表示N×N的二维整型数组
struct composition
{
    int m;
    int ro;
    int co;
}matr;
void fix_set_diag(fix_matrix A,int val);
struct composition max_matrixelement(fix_matrix B,struct composition);

void main()
{
    int i,j,val;
    fix_matrix A;
    matr.m=0;matr.ro=0;matr.co=0;
    for(i=0;i      for(j=0;j        A[i][j]=i+j;
    matr=max_matrixelement(A,matr);
    val=254;
    fix_set_diag(A,val);

}

/***查找矩阵A的最大元素值,并确定其所在行和列*/
struct composition max_matrixelement(fix_matrix B,struct composition p)
{
    int k,l;
    for(k=0;k      for(l=0;l       if(p.m         {
            p.m=B[k][l];
            p.ro=k+1;
            p.co=l+1;
        }
        return p;
    }
        
/***用val设置矩阵A对角线元素***/
void fix_set_diag(fix_matrix A,int val)
{
    int i;
    for(i=0;i      A[i][i]=val;
}

赋初值后,矩阵

用二维数组设置矩阵元素并求最大值元素的位置_第1张图片

调用函数max_matrixelement(fix_matrix B,struct composition p)后,得矩阵A的最大值为8,位置为(5,5)。

调用函数fix_set_diag(fix_matrix A,int val)后,

用二维数组设置矩阵元素并求最大值元素的位置_第2张图片

你可能感兴趣的:(矩阵,算法,线性代数)