
输入一个正整数 repeat (0
输入输出示例:括号内为说明
输入:
2 (repeat=2)
4 (n=4)
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9
2 (n=2)
1 7
4 1
输出:
a[2][1] = 6
NO */
#include "stdio.h"
int main(void)
{
int flag, i, j, k,index, row, col, n;
int a[6][6];
int repeat, ri;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);flag=0;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for(i = 0; i < n; i++){
index=0;
for(j = 1; j < n; j++)
if(a[i][index] for(k=0;k
else {row=i;col=index;flag=1;}
}
}
if(flag != 0)
printf("a[%d][%d] = %d\n", row, col,a[row][col]);
else
printf("NO\n");
}
}
下面是我上课时候写的作业也是神纤找鞍点。。你可以看一下。。
#include
# define N 20
# define M 20
void main ()
{ int i,j,k,m,n,flag1,flag2,a[N][M],max,maxi,maxj;
maxj=0;
printf(" 输入行数n ");
scanf("%d",&n);
printf(" 输入游厅仿列数m ");
scanf("%d",&m);
for(i=0;i {printf("第%d 行
",i+1); for(j=0;j scanf("%d",&a[i][j]); } for(i=0;i { for(j=0;j printf("%5d",a[i][j]); printf("
"); } flag2=0; for(i=0;i { max=a[i][0]; for(j=0;j if(a[i][j]>max) 伏谨{max=a[i][j]; maxj=j; } for(k=0,flag1=1;k if(max>a[k][maxj]) flag1=0; if(flag1) { printf("
第%d行,第%d列的%d是鞍点
",i,maxj,max); flag2=1; } } if(!flag2) printf("
矩阵中无鞍点
"); }
你最后判断鞍点时毁弊做候存在的地方有点问题。flag被反复赋值,只能记录最后一轮循环的值。应卜悄该找到鞍点后就输出。给你改了一下,可能不是最优方法,不过运行正确了,你看一下再试试能不能再优化吧纤衡。。
#include "stdio.h"
int main(void)
{
int flag, i, j, k,index, n;
int a[6][6];
int repeat, ri;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);flag=0;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for(i = 0; i < n; i++){
index=0;
for(j = 1; j < n; j++)
if(a[i][index] for(k=0;k
if(k==3){
flag=1;//标记找到鞍点
printf("a[%d][%d] = %d\n", i, index,a[i][index]);//只要找到就输出
}
}
}
if(flag == 0)
printf("NO\n");//如果没找到就输出NO
}
}
改好了:亩激
#include "stdio.h"
int main(void)
{
int flag, i, j, k,index, row, col, n;
int a[6][6];
int repeat, ri;
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++){
index=0;
flag=1;
for(j = 1; j < n; j++)
if(a[i][index] for(k=0;k
// else {row=i;col=index;flag=1; break;}
}
if (flag)
{
row=i;col=index;
break;
}
}
if(flag != 0)
printf("a[%d][%d] = %d\n", row, col,a[row][col]);
else
printf("让派NO\n"迅滑袜);
}
}