| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 223 人关注过本帖
标题:怎样找这样一个数
只看楼主 加入收藏
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
结帖率:93.94%
收藏
已结贴  问题点数:30 回复次数:4 
怎样找这样一个数
#include"stdio.h"
int main()
{
int a[5][3];
int i,j,m,n,max;
for(i=0;i<5;i++)
   for(j=0;j<3;j++)
       scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
   for(j=0;j<3;j++)
   {m=i;
    n=j;
    max=a[m][n];
    for(i=0;i<5;i++)
    if(max<=a[i][n])
            continue;
    for(j=0;j<3;j++)
    if(max>=a[m][j])
        continue;        
    if(i==5&&j==3)
        printf("鞍点为%3d\n",max);
   }
}
找一个数,它是这一行的最大值,这一列的最小值,以上是我编得程序,总是输出a[0][0];
为什么?谢谢!
搜索更多相关主题的帖子: max include 
2013-01-02 17:37
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:30 
程序代码:
#include <stdio.h>
int main()
{
int a[5][3];
int i = 0;
int j = 0;
int row = 5;
int col = 3;
int max = 0;
char check = 'y';

for(i=0;i<5;i++)
   for(j=0;j<3;j++)
       scanf("%d",&a[i][j]);

j = 0;
for(i=0;i<5;i++)
{

    /* 遍历全行 */
    for(col=0;col<3;col++)
    if(max < a[i][col])
    {
        max = a[i][col];
        j = col;             /* 记录下最大值的列数 */
    }

    /* 遍历全列 */
   for(row=0;row<5;row++)
       if(max >= a[row][j] && row != i)   /* 大于等于其中的一个数,不符合要求,
                                            同时跳过本行,避免和自己进行比较 */
       {
        printf("对不起,第%d行没有符合要求的数\n",i+1);  /* 递增索引值 */
        check = 'n';
        break;
       }

   /* 如果符合要求... */
   if(check == 'y')
       printf("\n鞍点为%3d\n",max);
  
   check = 'y';
}
}

图片附件: 游客没有浏览图片的权限,请 登录注册

I have not failed completely
2013-01-02 18:27
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 2楼 神龙赖了
谢谢大侠,请问我的那个错在哪里了呀?谢谢!
2013-01-02 18:49
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
程序代码:
for(i=0;i<5;i++)
   for(j=0;j<3;j++)
   {m=i;
    n=j;
    max=a[m][n];
    for(i=0;i<5;i++)      /* 循环过后i=5,于是会跳出所有循环 */
    if(max<=a[i][n])
            continue;
    for(j=0;j<3;j++)      /* 同理,j=3, 跳出第一个j循环 */
    if(max>=a[m][j])
        continue;       
    if(i==5&&j==3)
        printf("鞍点为%3d\n",max);
   }
}
还有一些是逻辑上的错误
可以在程序中用自己的思维把它走一遍,像这样的小程序比较适合用这种方法

I have not failed completely
2013-01-02 18:57
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
谢谢,这下懂了,非常感谢!!!
2013-01-02 19:04
快速回复:怎样找这样一个数
数据加载中...
 
   



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

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