一个二维数组每列的最小值
C语言:
#include<stdio.h>
void liemin(int input[3][4],int inputHangN,int inputLieN,int *output)
{
int inputLieIndex = 0;
int inputHangIndex = 0;
int i,j;
int temp;
for(inputLieIndex = 0;inputLieIndex < inputLieN;inputLieIndex++) //把列定下来
{
for(i = 0;i < inputHangN;i++) //冒泡排序
for(j = i+1;j < inputHangN;j++)
{
if(input[i][inputLieIndex] > input[j][inputLieIndex])
{
temp = input[i][inputLieIndex];
input[i][inputLieIndex] = input[j][inputLieIndex];
input[j][inputLieIndex] = temp;
}
}
output[inputLieIndex] = input[0][inputLieIndex];
}
}
int main()
{
int input[3][4] = {{21,48,4,9},{32,4,6,8},{3,5,5,8}};
int output[4];
int i = 0;
liemin(input,3,4,output);
while(i < 4)
{
printf("%d",output[i]);
i++;
}
}
假如这个二维数组是以一维数组的形式给定的
#include<stdio.h>
void liemin(int *input,int n,int *output)
{
int i,j,temp,k;
for(i = 0;i < n;i++)
for(j = i + 4;j < n;j+=4) //加4比较
{
if(input[i] > input[j])
{
temp = input[i];
input[i] = input[j];
input[j] = temp;
}
}
for(k = 0;k < 4;k++)
{
output[k] = input[k];
}
}
int main()
{
int input[12] = {21,48,4,9,32,4,6,8,3,5,5,8};
int output[4];
int i = 0;
liemin(input,12,output);
while(i < 4)
{
printf("%d",output[i]);
i++;
}
}