请问这个代码为什么能运行但是什么也无法输出?

新手上路,请多包涵

题目是“找出一个5行4列的二维数组的“鞍点”,即该位置的元素在该行上最小,在该列上最大。输出该元素的值和行列号,如没有鞍点,则输出“没有找到鞍点”。”

#include<iostream>
using namespace std;
int main()
{
    int a[5][4],i,j;
    void andian(int array[5][4]);
    for(i=0;i<=4;i++)
        for(j=0;j<=3;j++)
            cin>>a[i][j];
    andian(a);
    return 0;
}
void andian(int array[5][4])
{
    int i,j;
    int min(int,int,int,int);
    int max(int,int,int,int,int);
    for(i=0;i<=4;i++)
        for(j=0;j<=3;j++)
            if(array[i][j]==min(array[i][0],array[i][1],array[i][2],array[i][3])&&array[i][j]==max(array[0][j],array[1][j],array[2][j],array[3][j],array[4][j]))
                cout<<i<<" "<<j<<endl;
}
int min(int a,int b,int c,int d)
{
    int y=0;
    if(a<y)y=a;
    if(b<y)y=b;
    if(c<y)y=c;
    if(d<y)y=d;
    return(y);
}
int max(int a,int b,int c,int d,int e)
{
    int x=0;
    if(a>x)x=a;
    if(b>x)x=b;
    if(c>x)x=c;
    if(d>x)x=d;
    if(e>x)x=d;
    return(x);
}

无论输入什么都没有输出结果。
请问这是为什么,要怎么改?

阅读 1.9k
2 个回答
int min(int a,int b,int c,int d)
{
    int y=a;
    if(b<y)y=b;
    if(c<y)y=c;
    if(d<y)y=d;
    return(y);
}
int max(int a,int b,int c,int d,int e)
{
    int x=a;
    if(b>x)x=b;
    if(c>x)x=c;
    if(d>x)x=d;
    if(e>x)x=d;
    return(x);
}

两个问题

int max(int a,int b,int c,int d,int e)
{
    ...
    if(d>x)x=d;
    if(e>x)x=d;
    ...
}

if(e>x)x=d; 应改为 if(e>x)x=e;

int min(int a,int b,int c,int d)
{
    int y=0;
    if(a<y)y=a;
    ...
}

谁会比 0 小呢?只有负数吧。int y=0;应改为int y=1000000;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题