c语言输出二维数组每列的最小值
时间: 2024-11-09 10:21:43 浏览: 24
在C语言中,要输出二维数组每列的最小值,你可以创建一个循环遍历每一行,然后在内层循环中比较当前元素与其他元素,找出每列的最小值。以下是一个简单的示例:
```c
#include <stdio.h>
#define ROWS 3 // 数组的行数
#define COLS 4 // 数组的列数
void print_col_min(int arr[ROWS][COLS]) {
int i, j;
for (i = 0; i < COLS; i++) { // 遍历每一列
int min_val = arr[0][i]; // 初始列最小值设为第一行第一个元素
for (j = 1; j < ROWS; j++) { // 内层循环比较其他元素
if (arr[j][i] < min_val) {
min_val = arr[j][i];
}
}
printf("Column %d minimum value: %d\n", i+1, min_val); // 输出该列的最小值
}
}
int main() {
int arr[ROWS][COLS] = {
{5, 9, 7, 2},
{1, 8, 6, 3},
{4, 7, 10, 1}
};
print_col_min(arr);
return 0;
}
相关问题
c语言求二维数组每列最小值
可以使用嵌套循环遍历二维数组,对于每一列再进行一次循环,找到该列的最小值。以下是示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
int main() {
int arr[ROWS][COLS] = {
{1, 3, 5, 7},
{2, 4, 6, 8},
{0, 9, -1, 10}
};
int min_arr[COLS]; // 用于存储每列的最小值
// 初始化最小值数组
for (int j = 0; j < COLS; j++) {
min_arr[j] = arr[0][j];
}
// 遍历每列
for (int j = 0; j < COLS; j++) {
// 找到该列的最小值
for (int i = 1; i < ROWS; i++) {
if (arr[i][j] < min_arr[j]) {
min_arr[j] = arr[i][j];
}
}
}
// 输出每列的最小值
for (int j = 0; j < COLS; j++) {
printf("第%d列的最小值为:%d\n", j+1, min_arr[j]);
}
return 0;
}
```
输出结果为:
```
第1列的最小值为:0
第2列的最小值为:3
第3列的最小值为:-1
第4列的最小值为:7
```
C语言求二维数组中的最小值,以及最小值的行号、列号
可以使用两个嵌套的循环遍历整个二维数组,同时记录最小值及其所在的行、列号。
具体实现如下:
```c
#include <stdio.h>
#define ROWS 3 // 二维数组的行数
#define COLS 4 // 二维数组的列数
int main() {
int arr[ROWS][COLS] = { {5, 2, 9, 8}, {3, 6, 1, 7}, {4, 0, 10, 12} }; // 定义一个二维数组
int min = arr[0][0]; // 记录最小值
int min_row = 0; // 记录最小值所在的行号
int min_col = 0; // 记录最小值所在的列号
// 遍历二维数组
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
// 如果当前元素比最小值还小,则更新最小值及其所在的行、列号
if (arr[i][j] < min) {
min = arr[i][j];
min_row = i;
min_col = j;
}
}
}
printf("最小值为:%d,所在位置为第%d行第%d列\n", min, min_row + 1, min_col + 1);
return 0;
}
```
上述代码中,将二维数组中第一个元素设为初始的最小值,然后遍历整个数组,如果当前元素比最小值还小,则更新最小值及其所在的行、列号。最后输出最小值及其所在的位置。
阅读全文