标题:马鞍点程序出了点问题
取消只看楼主
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
结帖率:66.67%
已结贴  问题点数:20 回复次数:0 
马鞍点程序出了点问题
马鞍点是指在矩阵某元素在某一行最大,但在其所在列为最小的那个数称为马鞍点。
程序运行的结果如下所示:
[color=#330099]请输入3行4列矩阵A的12个元素:
[color=#00CC33]1 1 1 2
1 1 1 3
1 1 1 4
a[1][4]是矩阵的马鞍点
a[1][4]是矩阵的马鞍点
Press any key to continue
程序如下所示,一直没找到错误,求大神帮忙

#define M 3
#define N 4
#include<stdio.h>
int main(void)
{
    int a[M][N],b[N]={0};
    int i,j,max,flag,w,k,sign=0,u,t,num;
    printf("请输入3行4列矩阵A的12个元素:\n");
    for(i=0;i<M;i++) //输入二维数组的12个整数
    {
        for(j=0;j<N;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<M;i++)
    {
        k=0;
        max=a[i][0];//假设每一行的第一个元素为最大值
        for(j=1;j<N;j++)//找出第i行的最大数
        {
            t=0;//用t标记a[i][0]的列下标
            if(max<a[i][j])//将比max大的数赋给max,并记下这个数的列下标
            {
                max=a[i][j];
                t=j;
            }
        }
        b[k]=t;//第i行找到的首个max元素的列下标存入b[0]
        for(j=t;j<N;j++)//找出第i行和max相等的数,记下其列下标存入数组b
        {
            if(max==a[i][j])
            {
                k++;
                b[k]=j;
            }
        }
        if(!k)//判断与max相等的数是否存在,不存在则num=1,存在则num=k;
            num=1;
        else
            num=k+1;
        for(j=0;j<num;j++)//对每个max进行列比较
        {
            u=b[j];
            for(w=0;w<M;w++)
            {
                flag=1;
                if(max>a[w][u])//如果max不是所在列的最小值,标志位flag置0,并跳出循环
                {
                    flag=0;break;
                }
            }
            if(flag)//如果max是所在列的最小值,flag=1,找到了马鞍点,标记sign=1
            {
                printf("a[%d][%d]是矩阵的马鞍点\n",i+1,u+1);
                sign=1;
            }
        }
    }
    if(!sign)//未找到马鞍点sign=0
    {
        printf("在矩阵A中不存在马鞍点\n");
    }
    return 0;
}
搜索更多相关主题的帖子: continue include 元素 
2013-06-08 14:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-414805-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.039797 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved