C++编程:求矩阵的第二大值及其下标

要求求矩阵的第二大值及其下标,请问这段代码的问题在哪里呢?我输入之后按回车程序没有给出输出,光标换行继续下移了。


/* 求矩阵第二大的值,及输出其下标 */
#include<iostream>
#include<bits/stdc++.h>
#include<vector>
using namespace std;
const int m=1000, n=1000;
int main()
{
    int m, n, max, max_2nd;
    cin>>m;
    cin.get();
    cin>>n;
    int a[m][n];
    for(int i=0; i<=m; i++)
    {
        for(int j=0; j<=n; j++)
        {
            cin>>a[m][n];
            cin.get();
        }
    }
    max = a[0][0];
    max_2nd = a[0][1];
    for(int i=0; i<=m; i++)
    {
        for(int j=0; j<=n; j++)
        {
            if(max < a[i][j])
            max=a[i][j];
            else if(a[i][j]<max && a[i][j]>max_2nd)
            max_2nd=a[i][j];
            else(a[i][j]<max && a[i][j]<max_2nd);
        }
    }
    for(int i=0; i<=m; i++)
    {
        for(int j=0; j<=n; j++)
        {
            if(max == a[i][j])
            cout<<max<<" "<<i+1<<" "<<j+1;
            else if(max_2nd == a[i][j])
            cout<<max_2nd<<" "<<i+1<<" "<<j+1;
        }
    }
    system("pause");
    return 0;
}

/* 求矩阵第二大的值,及输出其下标 */
#include<iostream>
#include<vector>
using namespace std;
const int M = 100, N = 100;
int main()
{
    int m, n, max, max_2nd;
    cin >> m;
    cin >> n;
    int a[M][N] = {0};
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }
    max = a[0][0];
    max_2nd = a[0][1];
    for (int i = 0; i <= m; i++)
    {
        for (int j = 0; j <= n; j++)
        {
            if (max < a[i][j]){
                max_2nd = max;
                max = a[i][j];
            }
        }
    }
    for (int i = 0; i <= m; i++)
    {
        for (int j = 0; j <= n; j++)
        {
            if (max_2nd == a[i][j])
                cout << max_2nd << " " << i  << " " << j;
        }
    }
    system("pause");
    return 0;
}