{i=i-1; j=j+1;
if ((i<1) && (j>n)) {i=i+2; j=j-1; } else {if (i<1) i=n; if (j>n) j=1; }
if (a[i][j]==0) a[i][j]=k; else {i=i+2; j=j-1; a[i][j]=k; } }
for (i=1;i<=n;i++) {for (j=1;j<=n;j++) printf(\printf(\} return 0; }
6-8
#include
#define M 5 /* 数组为4行5列 */ int main() {
int i,j,k,a[N][M],max,maxj,flag; printf(\for (i=0;i {max=a[i][0]; /* 开始时假设a[i][0]最大 */ maxj=0; /* 将列号0赋给maxj保存 */ for (j=0;j {max=a[i][j]; /* 将本行的最大数存放在max中 */ maxj=j; /* 将最大数所在的列号存放在maxj中 */ } flag=1; /* 先假设是鞍点,以flag为1代表 */ for (k=0;k if (max>a[k][maxj]) /* 将最大数和其同列元素相比 */ {flag=0; /* 如果max不是同列最小,表示不是鞍点令flag1为0 */ continue;} if(flag) /* 如果flag1为1表示是鞍点 */ {printf(\输出鞍点的值和所在行列号 */ break; } } if(!flag) /* 如果flag为0表示鞍点不存在 */ printf(\return 0; } 6-9 #include { int i,number,top,bott,mid,loca,a[N],flag=1,sign; char c; printf(\scanf(\i=1; while(i printf(\} printf(\for (i=0;i printf(\while(flag) {printf(\scanf(\sign=0; top=0; //top是查找区间的起始位置 bott=N-1; //bott是查找区间的最末位置 if ((numbera[N-1])) //要查的数不在查找区间内 loca=-1; // 到 while ((!sign) && (top<=bott)) {mid=(bott+top)/2; if (number==a[mid]) {loca=mid; printf(\} else if (number if(!sign||loca==-1) printf(\printf(\scanf(\if (c=='N'||c=='n') 表示找不