| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 671 人关注过本帖
标题:马鞍点程序出了点问题
只看楼主 加入收藏
xiedj
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2013-5-30
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
马鞍点程序出了点问题
马鞍点是指在矩阵某元素在某一行最大,但在其所在列为最小的那个数称为马鞍点。
程序运行的结果如下所示:
[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
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
《妙趣横生的算法C语言实现》里面的118页上有这个例子

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-08 20:24
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:10 

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-06-08 23:01
快速回复:马鞍点程序出了点问题
数据加载中...
 
   



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

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