| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 243 人关注过本帖
标题:求鞍点程序,本人新人,求指导
只看楼主 加入收藏
a576008304
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
求鞍点程序,本人新人,求指导
#include <stdio.h>

int main(void)
{
    int i, j, max, maxi, maxj, m, n, a[20][20], flag;

    printf("Please input m and n:");
    scanf("%d%d", &m, &n);
    printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for(i=0; i<m; i++)
    {
        max = a[i][0];
        for(j=1; j<m; j++)
        {
            if(max<a[i][j])
            max = a[i][j];
            maxi = i;
            maxj = j;
        }
        
        for(i=0; i<m; i++)
        {
            if(max>a[i][maxj])
            {
                flag = 0;
                break;
            }
            else
            {
                flag = 1;
                continue;
            }
        }
        if(flag == 1)
        {
            printf("\nyou an dian, wei: juZhen[%d][%d]=%d\n", m, n, max);
            break;
        }
    }
    if(flag==0)
    {
        printf("\nmei you an dian.\n");
    }

    return 0;
}



自己的想法   但是不能运行   是个死程序    求大神指教鞍点意为本行中最大元素与该列最小元素是同一个数

[ 本帖最后由 a576008304 于 2012-11-22 12:26 编辑 ]
搜索更多相关主题的帖子: max include 
2012-11-22 12:21
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
我也是新人 帮顶了

2012-11-22 12:21
a576008304
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-22
收藏
得分:0 
回复 2楼 zklhp
还是谢谢!!!
2012-11-22 12:23
a576008304
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-22
收藏
得分:0 
回复 3楼 a576008304
惊奇的发现    其他简单的数组都能运行且结果正确   复杂点的机数大一点的就不能运行。。。。。。。   
2012-11-22 13:08
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:15 
程序代码:
#include <stdio.h>

int main(void)
{
    int i, j, max, maxi, maxj, m, n, a[20][20], flag;

    printf("Please input m and n:");
    scanf("%d%d", &m, &n);
    printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for(i=0; i<m; i++)
    {
        max = a[i][0];
        for(j=1; j<m; j++)//这里的m应为n吧
        {
            if(max<a[i][j])
            max = a[i][j];
            maxi = i;
            maxj = j;
        }
       
        for(i=0; i<m; i++) //这里的m应为n吧 并且在这里给i重新赋值会破坏外循环中的i值,
        {
            if(max>a[i][maxj])
            {
                flag = 0;
                break;
            }
            else
            {
                flag = 1;
                continue;
            }
        }
        if(flag == 1)
        {
            printf("\nyou an dian, wei: juZhen[%d][%d]=%d\n", m, n, max);
            break;
        }
    }
    if(flag==0)
    {
        printf("\nmei you an dian.\n");
    }

    return 0;
}

2012-11-22 13:08
a576008304
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-22
收藏
得分:0 
回复 5楼 heroinearth
正确结果:
#include <stdio.h>

int main(void)
{
    int i, j, max, maxi, maxj, m, n, a[20][20], flag, k;

    printf("Please input m and n:");
    scanf("%d%d", &m, &n);
    printf("Please input a juZhen(%d hang, %d lie):\n", m, n);
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            scanf("%d", &a[i][j]);
        }
    }
    for(i=0; i<m; i++)
    {
        max = a[i][0];
        for(j=1; j<n; j++)//多谢楼上大哥提醒
        {
            if(max<a[i][j])
            {
                max = a[i][j];
                maxi = i;
                maxj = j;
            }
            else     /一开始没有加这一部分,本行最大值若不是在最后求不出来,这是什么问题。。。if后面若没有else程序是怎样运行的?
            {
                continue;
            }       /
        }
        
        for(k=0; k<m; k++)//多谢楼上大哥提醒,这里再给i复制就破坏了外层的i值
        {
            if(max>a[k][maxj])
            {
                flag = 0;
                break;
            }
            else
            {
                flag = 1;
                continue;
            }
        }
        if(flag == 1)
        {
            printf("\nyou an dian, wei: juZhen[%d][%d]=%d\n", maxi, maxj, max);
            break;
        }

    }
    if(flag==0)
    {
        printf("\nmei you an dian.\n");
    }

    return 0;
}


正确结果   
2012-11-22 13:42
快速回复:求鞍点程序,本人新人,求指导
数据加载中...
 
   



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

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