一个求矩阵鞍点(即行上最小的数 同时是列上最大的数)的C程序
/*求一个矩阵的鞍点,即在行上最小在列上最大的点*/#include<stdio.h>#include<stdlib.h>#include<time.h>int readmtr(int a[][10],int n){int i,j;printf("input n*n matric:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);//a[i][j]=rand()%10000;return 1;}void printmtr(int a[][10],int n){int i,j;srand((int)time(0));for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%d\t",a[i][j]);printf("\n");}}main(){int a[10][10],n=3,i,j,k,minj,t,kz=0;readmtr(a,n);printmtr(a,n);for(i=0;i<n;i++){t=a[i][0];minj=0;for(j=1;j<n;j++)if(a[i][j]<t){t=a[i][j];minj=j;}for(k=0;k<n;k++){if(a[k][minj]>t)/*B:列中不存在比该点大的数不满足k<n跳出for(即 k==n)*/break;/*A:如果列中存在比该点大的数执行break,跳出for,此时 k<n ;*/if(k<n-1)continue;/* 当判断到 最后一列时仍没有比该数大的 即 k==n-1 此时 if为假。跳过continue */printf("zhe result is a[%d][%d] = %d\n",i,minj,a[i][minj]);kz=1;break;}}if(kz==0) printf("No solution\n");}