#include<stdio.h>
int main()
{
int a[4][4]={{2,3,9,5},{6,7,8,3},{0,5,7,5},{2,1,8,3}}
int i,j,k,i0,j0,find=0
printf("数组a:\n")
for(i=0i<4i++)
{
for(j=0j<4j++)
printf("%3d",a[i][j])
printf("\n")
}
for(i=0i<4i++) //穷举所有的行
{
j0=0
for(j=1j<4j++)
if(a[i][j]>a[i][j0])j0=j //找到第i行上最大的数a[i][j0]
k=1
for(i0=0i0<4i0++) //对找到的该数穷举所有行
if(a[i0][j0]<a[i][j0])k=0 //如它不是本列上最小的数就“一票否决”
if(k) //若确认是,就输出,并记录已找到
{
printf("鞍点是:a[%d][%d]=%d\n",i,j0,a[i][j0])
find=1
}
}
if(!find) //若未找到,则输出提示信息
printf("此数组无鞍点!\n")
return 0
}
#include "stdafx.h"#include<stdio.h>
void main(){
int i,j,a[4][5]
int k,g,min,max
for(i=0i<4i++)
for(j=0j<5j++)
scanf("%d",&a[i][j])
for(i=0i<4i++){
max=a[i][0]
for(j=1j<5j++)
if(a[i][j]>max)
{max=a[i][j]
k=j
}
}
for(i=1i<4i++){
min=a[0][k]
if(a[i][k]<min)
min=a[i][k]
}
if(max==min)
printf("andian is %d",max)
else
printf("no andian")
}
已经编译通过。你的错误是:
①if(max==min)其中为==并不是=;
②最后少一个大括号,否则程序不完整,无法结束。
#include<stdio.h>int a[10][10]
int main()
{int ans=0,n,m
scanf("%d%d",&n,&m)
for(int i=1i<=ni++)
for(int j=1j<=mj++)
scanf("%d",&a[i][j])
int haveans=false
for(int i=1i<=ni++)
for(int j=1j<=mj++)
{ bool flag=true//假设a[i][j]是鞍点
for(int ii=1ii<=nii++)
if(a[ii][j]<a[i][j]){flag=falsebreak}//如果不是该列最小
if(flag)
{ for(int jj=1jj<=mjj++)
if(a[i][jj]>a[i][j]){flag=falsebreak}//如果不是该行最大
if(flag){printf("%d %d %d\n",i,j,a[i][j])ans++} //如果是鞍点
}
}
if(!ans)printf("not found\n")
return 0
}