C语言代码:输出一个矩阵中既是行最小也是列最小的所有值。

发布时间:2023年12月31日

当然!以下是一个生成一个矩阵中既是行最小也是列最小的所有值的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;
}

文章来源:https://blog.csdn.net/m0_58464499/article/details/135311336
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。