求一个矩阵的鞍点

    技术2022-07-11  85

    求一个矩阵鞍点(即在行上最小而在列上最大的点)。

    #include<stdio.h> int main() { int a[5][5]; //定义一个5x5的int数组 int i, j, n = 5, t, k, minj, kz = 0; printf("输入:\n"); //输入数组 for( i = 0 ; i < n ; i++) { for( j = 0 ; j < n ; j++) { scanf("%d",&a[i][j]); } } printf("输出:\n"); //打印数组 for( i = 0 ; i < n ; i++) { for( j = 0 ; j < n ; j++) { printf("%d ",a[i][j]); } printf("\n"); } for( i = 0; i < n; i++) //找出鞍点 从第一行开始 { t = a[i][0]; //初始值为a[0][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] > a[i][minj]) //当有更大的值时跳出 则j不能加到5 break; } if(k == n) //当j加到5时说明已比较完一列全部数据,说明该数为最大值 { printf("the result is %d\n", a[i][minj]); kz = 1; //为标记 } } if(kz == 0) printf("no solution!"); return 0; }

    结果

    Processed: 0.015, SQL: 9