找出二维数组每列中最小元素,并依次放入b所指一维数组中
函数接口定义:
void small(int a[][N],int b[]);
其中 b
中存储 a
数组中的每列最小值。
裁判测试程序样例:
#include <stdio.h>
#define M 3
#define N 4
void small(int a[][N],int b[]);
int main()
{
int i,j,x[M][N],y[N];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&x[i][j]);
small(x,y);
for(i=0;i<N;i++)
printf("%d ",y[i]);
return 0;
}
/* 请在这里填写答案 */
输入样例:
1 2 3 4
5 6 1 9
9 5 2 3
输出样例:
1 2 1 3
思路:这题和上一题很类似,这里我们只需要最矩阵的每一列元素进行遍历寻找最小值存入数组中即可,要注意下方第二个循环处,我们需要对每一列遍历完找到最小值以后才能将值赋给数组。
void small(int a[][N], int b[])
{
int i, j;
int min;//定义一个变量用来存放最小值
for (i = 0; i < N; i++)
{
min = a[0][i];//给变量赋一个初值,比如每列的第一个元素
for (j = 1; j < M; j++)//每一列元素循环开始寻找每列元素的最小值
{
if (a[j][i] < min)
{
min = a[j][i];
}
}
*b = min;
b++;
}
}