c语言 由键盘输入一个3*4(3行4列)的数字矩阵,其中任意两个数字均不相同。要求输出该数字矩阵中的鞍点(鞍点为矩阵中的一个元素,该元素必须同时满足:其在所在列中最小,在所在行中最大)。若没有鞍点,输出“NO”字样。
时间: 2023-06-05 17:07:43 浏览: 143
在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出矩阵第一行与第三行元素之和,并在fun()函数中输出
5星 · 资源好评率100%
好的,这是一道关于C语言的问题,我可以帮你解答。以下是代码:
#include <stdio.h>
int main() {
int matrix[3][4];
int row_max, col_min, saddle_point_found = 0; // 分别用来记录行最大值、列最小值、是否找到鞍点
// 输入数字矩阵
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 寻找鞍点
for (int i = 0; i < 3; i++) {
row_max = matrix[i][0]; // 初始化为第一个元素
for (int j = 0; j < 4; j++) {
if (matrix[i][j] > row_max) {
row_max = matrix[i][j];
}
} // 寻找行最大值
for (int j = 0; j < 4; j++) {
col_min = matrix[0][j]; // 初始化为第一个元素
for (int k = 0; k < 3; k++) {
if (matrix[k][j] < col_min) {
col_min = matrix[k][j];
}
} // 寻找列最小值
if (matrix[i][j] == row_max && matrix[i][j] == col_min) { // 找到鞍点
printf("%d %d\n", i + 1, j + 1); // 输出行列数(从1开始)
saddle_point_found = 1; // 标记已找到鞍点
}
}
}
if (!saddle_point_found) { // 没有找到鞍点
printf("NO\n");
}
return 0;
}
你可以复制上述代码,粘贴到你的C语言开发环境中进行编译和运行。希望能对你有所帮助!
阅读全文