trilogy 贝斯中文翻译:这两个程序有什么不同

来源:百度文库 编辑:高校问答 时间:2024/04/29 02:30:06
为什么在学校上机练习系统上提交后一个显示是对的前一个就是答案错误~

#include "stdio.h"
int main( )
{ int ri,repeat;
int flag,i,j,k,row,col,n,a[6][6];
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
for(i=0; i<n; i++){
row=i;
col=0;
flag=0;
for(j=0; j<n; j++)
if(a[row][col]<=a[row][j])
col=j;
for(k=0; k<n; k++)
if(a[row][col]<=a[k][col])
flag=1;
if(flag==1)
break;
}
if(flag)
printf("a[%d][%d]=%d\n", row, col,a[row][col]);
else
printf("NO\n");
}
}

#include "stdio.h"
int main( )
{ int ri,repeat;
int flag,i,j,k,row,col,n,a[6][6];
scanf("%d",&repeat);
for(ri=1;ri<=repeat;ri++){
scanf("%d",&n);
for(i=0; i<n; i++)
for(j=0; j<n; j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
row=i;
col=0;
flag=1;
for(j=0;j<n;j++)
if(a[row][col]<a[i][j])
col=j;
for(j=0;j<n;j++)
if(a[row][col]>a[j][col])
flag=0;
if(flag==1)
break;
}
if(flag)
printf("a[%d][%d]=%d\n", row, col,a[row][col]);
else
printf("NO\n");
}
}


这一句不一样:前者为row=i; col=0; flag=0,后者为row=i; col=0; flag=1!
这应该是求矩阵“鞍点”的问题。请注意标志位的每次初始值。

?