查找列'k'右侧的最大元素
Finding max element which is to the right of column 'k'
我有一个任务,要求我找到列'k'右侧的max元素(据我所知,我需要在k+1列中找到最大值(。我显然做错了什么,因为当我运行代码时,最大值等于0。我一定是错过了一个错误,所以如果有任何帮助,我们将不胜感激。这是我的代码:
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int main() {
int n,m,k;
int max=-1000001;
int a[10][10];
cin>>n>>k;
m=n;
for (int i=0;i<n;i++) {
for (int j=0;j<m;j++) {
cin>>a[i][j];
}
}
for(int i=0;i<n;i++)
{
for (int j=0;j<m+1;j++)
{
if(a[i][j]>max && a[i][j]!=max && j==k+1)
max=a[i][j];
}
}
if (k>=m)
cout<<"No";
else
cout<<max;
}
这是输入:
3 2
1 2 3
5 5 2
6 3 4
这是我应该得到的输出:
4
要获得所需的预期输出,只需编写即可
int max = a[0][k+1];
for ( int i = 1; i < n; i++ )
{
if ( max < a[i][k+1] ) max = a[i][k+1];
}
我假设k + 1
小于m
。这就是的支票
如果(k>=m(cout<lt;"否";
应在循环之前完成。例如
int max;
if ( k + 1 < m )
{
max = a[0][k+1];
for ( int i = 1; i < n; i++ )
{
if ( max < a[i][k+1] ) max = a[i][k+1];
}
}
if ( not ( k + 1 < m ) )
cout<<"No";
else
cout<<max;
对于这个输入
3 2
程序将发出"否",因为当k等于2时k+1产生3并且3不是有效索引。此输入的有效索引范围为[0, 2]
。
你可以使用我对这个输入的回答中提供的代码来获得预期的结果
3 1
相关文章:
- 使用堆查找第K个最大元素的时间复杂性
- 查找矩阵C++中每一列和每一行的最小和最大元素
- C++如何在向量中查找最常见的元素
- 查找两个排序向量中共有的元素
- 在对向量中查找元素的索引
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 查找矩阵中单元格的相邻元素
- 为什么使用数组元素查找最大数字的程序不起作用?
- 查找第一个数组中不存在的元素
- 查找最小的下一个更大的元素
- 在最小堆中查找最大元素
- 在向量中查找大于 0(或通常为 k)的最小元素的最佳方法是什么?
- set::find 查找不存在的元素
- 在集合中查找使用结构C++的元素
- 从斐波那契序列 c++ 中的数组中查找正确的元素时出错
- 用于查找数组中最大元素的出现次数的代码,给出分段错误
- 查找数组中指示性较大但数组中值较小的元素
- C++结构集无法按元素查找/擦除
- 如何在OpenCV中使用Matlab的512元素查找表数组?
- 使用数组的元素查找总和'k'