A[n.m]是一个n行m列的矩阵a表示的第i行列的元素,定义为A的第i行和第j列除了a[i,j]之外所有元素(共n+m-2个)的乘积即x[i,j]=a[i,1]*a[i,2]*...*a[i,j-1]*...*a[i,m]*a[1,j]*al2,j]...*a[i-1,j]+*a[n,j],现输入非负整形的矩阵A[n,m],求MAX(x[i,j])小即所有的x[i,j]中的最大值。
输入描述:第一行两个整数n和m。之后n行输入矩阵,均为非负整数
输出描述一行输出答案。
具体代码如下:
#include<stdio.h>
int main(int argc, const char *argv[])
{
int n,m,i,j,k;
int A[n][m];
printf("请分别输入矩阵的行n和列m:");
scanf("%d%d",&n,&m);
if(n<1||m<1)
{
printf("矩阵A不存在,请重新输入\n");
scanf("%d%d",&n,&m);
}
printf("请输入矩阵的各个元素:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&A[i][j]);
}
}
int MAX=0;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
int max=1;
for(int k=0;k<n;k++)
{
if(k!=i)
{
max*=A[k][j];
}
}
for(int k=0;k<m;k++)
{
if(k!=j)
{
max*=A[i][k];
}
}
if(MAX<max)
MAX=max;
}
}
printf("%d\n",MAX);
return 0;
}