找出二维数组每列中最小元素,并依次放入b所指一维数组中
时间: 2023-05-27 10:03:23 浏览: 66
以下是Python实现:
```python
def get_column_min(arr):
"""
找出二维数组每列中最小元素,并依次放入b所指一维数组中
"""
m, n = len(arr), len(arr[0])
b = [float('inf')] * n
for j in range(n):
for i in range(m):
if arr[i][j] < b[j]:
b[j] = arr[i][j]
return b
```
其中,参数arr表示二维数组,返回值b表示每列的最小元素组成的一维数组。程序先用浮点数的最大值初始化b,然后遍历每列,找出其中的最小值并赋值给b。
相关问题
用C语言找出二维数组每列中最小元素,并依次放入b所指一维数组中
下面是用C语言实现的程序,其中二维数组为a,一维数组为b,数组大小分别为n和m:
```c
#include<stdio.h>
#define MAX 100
int main()
{
int a[MAX][MAX], b[MAX], n, m, min;
printf("请输入二维数组的大小(n m):");
scanf("%d%d", &n, &m);
printf("请输入%d行%d列的二维数组:\n", n, m);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
scanf("%d", &a[i][j]);
}
for(int j=0; j<m; j++)
{
min = a[0][j];
for(int i=1; i<n; i++)
{
if(a[i][j]<min)
min = a[i][j];
}
b[j] = min;
}
printf("每列最小元素为:");
for(int j=0; j<m; j++)
printf("%d ", b[j]);
return 0;
}
```
程序运行结果如下所示:
```
请输入二维数组的大小(n m):3 4
请输入3行4列的二维数组:
3 5 2 7
1 2 3 4
9 8 7 6
每列最小元素为:1 2 2 4
```
用数据结构找出二维数组每列中最小元素,并依次放入b所指一维数组中
以下是C++代码实现:
```cpp
// 定义函数,a为二维数组,n为列数,m为行数,b为一维数组
void findMinInColumn(int a[][m], int n, int m, int b[])
{
for (int j = 0; j < n; j++) // 外层循环遍历每一列
{
int min = a[0][j]; // 假设第一个元素为该列最小值
for (int i = 1; i < m; i++) // 内层循环从第二个元素开始比较
{
if (a[i][j] < min) // 如果当前元素小于上一个最小值
{
min = a[i][j]; // 更新最小值
}
}
b[j] = min; // 将该列最小值存入b数组对应位置
}
}
```
注:此处假设二维数组的行数为m,因此需要在函数参数中与列数一同传入。