c++二维数组中求第二小得数

来源:百度知道 编辑:UC知道 时间:2024/08/22 08:59:13
在一个5*5数组中球第二小得数,同样求的第三小,第四小的数

//测试通过
#include <stdio.h>
#define M 5 //定义一个行的最大范围
#define N 5 //定义一个列的最大范围
#define MAX 10000 //定义一个足够大的值

void t_min(int a[M][N],int b[M][N],int &m,int &n)
{
int i,j;
int min=MAX;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
if(b[i][j]==0)
{
if(a[i][j]<min)
{
m=i;
n=j;
min=a[i][j];
}
}
}
}
b[m][n]=1; //表示用过
}
void main()
{
int a[M][N],sum=0;
int m,n;
int i,j;
int b[M][N];
for(i=0;i<M;i++)
for(j=0;j<N;j++)
b[i][j]=0;

for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf ("a[%d][%d]的值:",i,j);
scanf("%d",&a[i][j]);
}
}
int k=4; //修改这里可以输出第k小的数
t_min(a,b,m,n); //去最小的数
for(i=2;i<=k;i++)
{
t_min(a,b,m,n);
printf(&qu