标题:要求输入一个3X4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所 ...
只看楼主
kanguhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-29
结帖率:50%
已结贴  问题点数:20 回复次数:7 
要求输入一个3X4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号
#include<stdio.h>
int main()
{
 int a[3][4],i,j,max=a[0][0],row,colum;
 printf("please enter array a:\n");
 for(i=0;i<=2;i++)
 {for(j=0;j<=3;j++)
   {scanf("%d",&a[i][j]);
    if(a[i][j]>max)
    {max=a[i][j];
     row=i;
     colum=j;
    }
   }
   printf("\n");
 }
 printf("max=%5d\nrow=%5d\ncolum=%5d\n",max,i,j);
 return 0;
}
 新手,还请各位大侠帮忙解释一下,我这个错在哪了
搜索更多相关主题的帖子: 最大的 please 
2013-03-19 17:38
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
得分:3 
的确是新手,LZ打印一下最开始的max的值
  它应该是一个不确定的值....即是说是一个垃圾值,如果要引用数组的
  a[0][0],强烈建议对数组进行初始化 a[3][4]={0};
2013-03-19 18:05
kanguhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-29
得分:0 
回复 2楼 爱闹的娃
{scanf("%d",&a[i][j]);  这一步好像就给max赋了初值了吧。
还有 printf("\n");这一步为什么当输入时实现不了自动换行而是要手动换呢。要怎么写才能是自动的
2013-03-19 18:52
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:3 
回复 3楼 kanguhong
真为楼主捉急,2楼说得很清楚了,你再好好想想

总有那身价贱的人给作业贴回复完整的代码
2013-03-19 19:14
U201010009
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:73
专家分:178
注 册:2013-2-25
得分:3 
二楼说得对,一开始的max=a[0][0],a[0][0]还属于未知的,就把max赋不确定值,不是想要的值,我改了一下程序:
#include<stdio.h>
int main()
{
    int a[3][4],i,j,max,row,colum;
    printf("please enter array a:\n");
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=3;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    max = a[0][0];
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=3;j++)
        {
            if(a[i][j]>max)
            {
                max=a[i][j];
                row=i+1;
                colum=j+1;
            }
        }
    }        
    printf("max=%5d\nrow=%5d\ncolum=%5d\n",max,row,colum);
    return 0;
}

我先循环把3X4矩阵存到a,然后循环找出最大值的元素,运行了,应该是对的,我也是新手。。。
有什么不对的地方还请指教


[ 本帖最后由 U201010009 于 2013-3-19 20:25 编辑 ]
2013-03-19 20:11
wak4668
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:105
注 册:2012-8-20
得分:3 
1、max=a[0][0]放到scanf上一行;放在赋值循环体外,它是动态的,不符合
2、scanf和printf各需要一个二维for循环,不能放在一个for循环中
3、自动换行在数据输入阶段貌似是实现不了的?等待大侠指点

[ 本帖最后由 wak4668 于 2013-3-19 21:37 编辑 ]
2013-03-19 21:32
nxa520
Rank: 1
等 级:新手上路
帖 子:7
专家分:9
注 册:2013-2-25
得分:3 
#include<stdio.h>
int main()
 { int i,j,row=0,colum=0,max;
   int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
   max=a[0][0];
   for(i=0;i<=2;i++)
     for(j=0;j<=3;j++)
       if(a[i][j]>max)
        { max=[i][j];
          row=i;
          colum=j;
          }
   printf("max=%d\nrow=%d\ncolum=%d\n",max,row,colum);
   return 0;
}
可以看看这个,感觉行的话试试吧@@@!!
2013-03-19 22:20
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
得分:3 
#include<stdio.h>
int main()
{
int a[3][4],i,j,max,row,colum;//max=a[0][0]改为max就可以
printf("please enter array a:\n");
for(i=0;i<=2;i++)
{for(j=0;j<=3;j++)
   {scanf("%d",&a[i][j]);
    if(a[i][j]>max)
    {max=a[i][j];
     row=i;
     colum=j;
    }
   }
   printf("\n");
}
printf("max=%5d\nrow=%5d\ncolum=%5d\n",max,i,j);
return 0;
}

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-03-19 23:19



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




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

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