注册 登录
编程论坛 C++教室

找二维数组中的鞍点:即该位置上的元素在该行最大,在该列最小(也可能没有鞍点)

玫瑰、 发布于 2015-08-19 11:40, 513 次点击
哪错啦,输不出来,望大神指点
#include <iostream>
using namespace std;
int main()
{
    int i,j;
    int max,maxj;
    bool flag;
    int a[4][5];
    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            cin>>a[i][j];
        }
    }
    for(i=0;i<4;i++)
    {
        max=a[i][0];maxj=0;
        for(j=0;j<5;j++)
        {
            if(a[i][j]>=max)
            {max=a[i][j];
            maxj=j;}
            flag=true;
        }
    }
    for(int k=0;k<4;k++)
    {
        if(max>=a[k][maxj])
        {flag=false;
        break;}
        if(max<a[k][maxj])
        {flag=true;
        cout<<max<<" "<<i<<" "<<maxj<<endl;}
    }
    return 0;
}
1 回复
#2
wmf20142015-08-19 12:27
你最后一个for里flag未起作用 ,也没看到max值得变化,这个循环设计的不正常,如果一开始max>=a[k][maxj]的话,跳出for,自然就没有输出了。
算法有相当问题。
1