please叫我滚去学习 2019-11-05 11:10 采纳率: 100%
浏览 365
已采纳

这是我自己写的鞍点程序,C语言写的,问问哪里错了?

#我dev运行结果是12

#include<stdio.h>
int main()
{
    int i,j,max,min,row,colum,t;
    int a[3][4]={{1,2,3,13},{5,6,7,9},{9,10,11,12}};
    for(i=0;i<=2;i++)
    {
        max=a[i][0];//找到第i行最大的 
        for(j=0;j<=3;j++)
        {
            if(a[i][j]>max)
            {
                max=a[i][j];
                colum=j;
            }
        } //现在这一行最大的是a[i][colum],下面判断是否为该列最小的 
        min=a[0][colum];//此处先设max那一行的 最小值是 a[0][colum]
        for(t=0;t<=2;t++)//找到该行最小的 
        {
            if(a[t][colum]<min);
            {
                min=a[t][colum];
                row=t;
            }
        }
        if(max==min) printf("%d是鞍点\n",min);
        else printf("*\n"); //这是我为了看过程 
    }
    return 0;
}

```![图片说明](https://img-ask.csdn.net/upload/201911/05/1572950293_115684.png)
  • 写回答

3条回答 默认 最新

  • scut_lyq00 2019-11-05 15:24
    关注

    if(a[i][j]>max)
    {
    max=a[i][j];
    colum=j;
    }

    这里有种情况,是永远进不去的。 所以就会出现一个问题, colum没有初始化。
    二种处理方法,一种是在
    max=a[i][0];//找到第i行最大的 之后 初始化colum
    colum=0

    或者 if(a[i][j]>max)
    改成 if(a[i][j]>=max) 始终让他至少进去一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 3月10日