一、问题描述
二、解答
思路:定义二维数组,比较不同行的相同列数
代码如下:
#include<iostream>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int a[1001][11] = { 0 };
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> a[i][j];
}
}
for (int k = 1; k <= n; k++)
{
int sum = 0;
//for (int i = k+1; i <= n; i++)
//注意这里:初始条件不是i=k+1,也要和前面的比较,索性全部比较了
for (int i = 1; i <= n; i++)
{
int num = 0;
for (int j = 1; j <= m; j++)
{
if (a[i][j] > a[k][j])
{
num++;
}
else
{
break;
}
}
if(num==m)
{
sum=i;
break;
}
}
cout << sum << endl;
}
return 0;
}
三、总结
刚开始写依然是因为考虑问题不全面,写错了第二个for循环i的初始条件,脑子抽了以为是当前行与后一行进行比较,结果当然不对。应该是当前行与所有的行即所有仓库点进行比较(包括自己)。