我有一个C程序生成随机数并填充数组5X5。 如何从每列获得最小元素并填充新数组? 我的程序只从整个矩阵中找到最小的数字。如何获取每列中的最小元素并将它们分配到C中的新数组?
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define M 5
void print(int (*array)[M]);
int smallest(int array[M][M]);
int main()
{
srand(time(NULL));
int array[M][M], minScore;
for(int i=0; i<M; i++)
{
for(int k = 0; k<M; k++)
{
array[i][k] =-10 + rand() % 21;
}
}
print(array);
minScore = smallest(array);
printf("Minimum is: %i\n", minScore);
system("pause");
return 0;
}
void print(int (*array)[M])
{
for(int i=0;i<M;i++)
{
for(int k=0; k<M; k++)
{
printf("%d ",array[i][k]);
}
printf("\n");
}
}
int smallest(int array[M][M])
{
int minValue;
minValue = array[0][0];
for(int i = 0; i < M; i++)
{
for(int k = 0; k < M; k++)
{
if (array[i][k] < minValue)
minValue = array [i][k];
}
}
return minValue;
}
不要使用单字母'#define's。 – Olaf