C语言编程,求 给定一个n行n列(n<=10)的二维整数方阵,要求在这个矩阵中找出一个子矩阵,该子矩阵中所有

2024-12-04 06:54:26
推荐回答(2个)
回答(1):

#include
main()
{
int e,i,j,m,n,a,b,k,l;float h=0,v=0;int s[100][100];
scanf("%d",&e);
for(i=0;i {
for(j=0;j }

for(i=0;i {
for(j=0;j {
k=s[i][j];
for(a=i+1;a {
for(b=j+1;b {

for(m=i;m<=a;m++)
{
for(n=j;n<=b;n++)
{
s[m][n]=s[m][n]/1.00;
h=h+s[m][n];
if(k>=s[m][n])k=s[m][n];
}
}
l=(a+1-i)*(b+1-j);
k=k/1.00;
h=h/l-k;
if(h>=v)v=h;
h=0;
}
}
}
}printf("%.2f",v);
}

我做的 答案是对了 但是考试时过不了 同求高手指点哪里有错!

回答(2):

#include
#include

int main()
{
int a[11][11];
int i, j, p, q;
double max=0, ave, mm;
int k, u;
int n;
scanf("%d", &n);
for(i=0; i for(j=0; j scanf("%d", &a[i][j]);
for(i=0; i for(j=0; j for(p=i; p for(q=j; q {
ave=0; mm=a[i][j];
for(k=i; k<=p; k++)
for(u=j; u<=q; u++)
{
ave+=a[k][u];
if(mm>a[k][u]) mm=a[k][u];
}
ave=ave/((p-i+1)*(q-j+1));
if(max }
printf("%.2f\n", max);
return 0;
}