当然!以下是一个生成一个矩阵中既是行最小也是列最小的所有值的C语言代码示例:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void findMinRowCol(int matrix[ROWS][COLS]) {
? ? int minRow[ROWS];
? ? int minCol[COLS];
? ? // 初始化最小行和最小列数组
? ? for (int i = 0; i < ROWS; i++) {
? ? ? ? minRow[i] = matrix[i][0];
? ? }
? ? for (int j = 0; j < COLS; j++) {
? ? ? ? minCol[j] = matrix[0][j];
? ? }
? ? // 查找每行的最小值
? ? for (int i = 0; i < ROWS; i++) {
? ? ? ? for (int j = 1; j < COLS; j++) {
? ? ? ? ? ? if (matrix[i][j] < minRow[i]) {
? ? ? ? ? ? ? ? minRow[i] = matrix[i][j];
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? // 查找每列的最小值
? ? for (int j = 0; j < COLS; j++) {
? ? ? ? for (int i = 1; i < ROWS; i++) {
? ? ? ? ? ? if (matrix[i][j] < minCol[j]) {
? ? ? ? ? ? ? ? minCol[j] = matrix[i][j];
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? // 输出既是行最小又是列最小的值
? ? printf("既是行最小又是列最小的值:\n");
? ? for (int i = 0; i < ROWS; i++) {
? ? ? ? for (int j = 0; j < COLS; j++) {
? ? ? ? ? ? if (matrix[i][j] == minRow[i] && matrix[i][j] == minCol[j]) {
? ? ? ? ? ? ? ? printf("%d ", matrix[i][j]);
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? printf("\n");
}
int main() {
? ? int matrix[ROWS][COLS] = {
? ? ? ? {9, 8, 7},
? ? ? ? {5, 3, 2},
? ? ? ? {6, 1, 4}
? ? };
? ? findMinRowCol(matrix);
? ? return 0;
}
```
这段代码定义了一个 `findMinRowCol` 函数,它接受一个包含整数值的二维数组 `matrix`。该函数首先初始化了一个 `minRow` 数组和一个 `minCol` 数组,用于存储每行和每列的最小值。然后,它遍历矩阵找到每行和每列的最小值,并将其存储在相应的数组中。最后,它输出既是行最小又是列最小的值。
在 `main` 函数中,我们定义了一个示例矩阵,并调用 `findMinRowCol` 函数来查找并输出满足条件的值。
#include <stdio.h>
#define ROWS 3
#define COLS 3
void findMinRowCol(int matrix[ROWS][COLS]) {
int minRow[ROWS];
int minCol[COLS];
// 初始化最小行和最小列数组
for (int i = 0; i < ROWS; i++) {
minRow[i] = matrix[i][0];
}
for (int j = 0; j < COLS; j++) {
minCol[j] = matrix[0][j];
}
// 查找每行的最小值
for (int i = 0; i < ROWS; i++) {
for (int j = 1; j < COLS; j++) {
if (matrix[i][j] < minRow[i]) {
minRow[i] = matrix[i][j];
}
}
}
// 查找每列的最小值
for (int j = 0; j < COLS; j++) {
for (int i = 1; i < ROWS; i++) {
if (matrix[i][j] < minCol[j]) {
minCol[j] = matrix[i][j];
}
}
}
// 输出既是行最小又是列最小的值
printf("既是行最小又是列最小的值:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
if (matrix[i][j] == minRow[i] && matrix[i][j] == minCol[j]) {
printf("%d ", matrix[i][j]);
}
}
}
printf("\n");
}
int main() {
int matrix[ROWS][COLS] = {
{9, 8, 7},
{5, 3, 2},
{6, 1, 4}
};
findMinRowCol(matrix);
return 0;
}