要求求矩阵的第二大值及其下标,请问这段代码的问题在哪里呢?我输入之后按回车程序没有给出输出,光标换行继续下移了。
/* 求矩阵第二大的值,及输出其下标 */
#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;
}