新手,关于二维数组求最大最小值有关问题

新手求助,关于二维数组求最大最小值问题
各位大虾,我在练习一个小的c语言程序的时候遇到一个问题,程序要求判断输入的数组中的最大最小值,我自己编写后可以得出最小值,但是无法得出最大值,望各路大虾指教,谢谢~

#include <stdio.h>
#define maxn 20
int a[maxn][maxn];

void main()
{
int min,max;//最小最大值
int i,j,n;//行,列,阶次数

printf("输入阶次数: ");
scanf("%d ",&n);
printf("\n输入元素:\n");

for(i = 0;i < n;i++)//输入矩阵
for(j = 0;j < n;j++)
{
scanf("%d ",&a[i][j]);
}

    max = min = a[0][0];
for (i = 0;i < n;i++)//判断最小值
for(j = 0;j < n; j++)
{
if (min >= a[i][j])
{
min = a[i][j];
}

if (max <= a[i][j])
{
max = a[i][j];
}

}
printf("最小值为:%d\n",min);
printf("最大值为:%d\n",max);
return 0;
}

------解决方案--------------------

//注意scanf用法
printf("输入阶次数: ");
scanf("%d",&n);
printf("输入元素:\n");

for(i = 0;i < n;i++)//输入矩阵
for(j = 0;j < n;j++)
{
scanf("%d",&a[i][j]);
}