找出二维数组中的鞍点,c语言
来源:百度知道 编辑:UC知道 时间:2024/06/05 05:49:48
#include<stdio.h>
void main()
{int i,j,min,m,n,p,q,max;
m=0;n=0;p=0;q=0;
int a[4][4]={{1,2,4,3},{5,2,7,4},{7,3,6,8},{2,4,5,9}};
max=a[0][0];
min=a[0][0];
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
if(a[i][j]>max){ max=a[i][j];m=i;n=j;}
for(j=n;j<n+1;j++)
{for(i=0;i<4;i++)
if(a[i][j]<min){ min=a[i][j];p=i;q=j ; }
}
if((p==m)&&(q==n)) printf("%d",a[m][n]);
else printf("no an dian");
}
错在哪里呢?
void main()
{int i,j,min,m,n,p,q,max;
m=0;n=0;p=0;q=0;
int a[4][4]={{1,2,4,3},{5,2,7,4},{7,3,6,8},{2,4,5,9}};
max=a[0][0];
min=a[0][0];
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
if(a[i][j]>max){ max=a[i][j];m=i;n=j;}
for(j=n;j<n+1;j++)
{for(i=0;i<4;i++)
if(a[i][j]<min){ min=a[i][j];p=i;q=j ; }
}
if((p==m)&&(q==n)) printf("%d",a[m][n]);
else printf("no an dian");
}
错在哪里呢?
你好:
#include<stdio.h>
void main()
{
int i,j,min,m,n,p,q,max;
m=0;n=0;p=0;q=0;
int a[4][4]={{1,2,4,3},{5,2,7,4},{7,3,6,8},{2,4,5,9}};
max=a[0][0];
min=a[0][0];
for(i=0;i<4;i++)
{
m=i;
n=0;
p=0;
q=0;
max=a[i][0];
for(j=0;j<4;j++)
if(a[i][j]>max)
{
max=a[i][j];
n=j;
}
min=a[0][n];
q=n;
for(j=0;j<4;j++)
if(a[j][n]<min)
{
min=a[j][n];
p=j;
}
if((p==m))
{
printf("鞍点为:%d\n",a[m][n]);
printf("此时m=%d; n=%d\n",m,n);
break;
}
else
if(i>=3)
printf("no an dian");
}
}
已编译出,是正确的,如果哪里不懂,再联系我。
希望对你有帮助