标题:本题要求编写程序,求一个给定的m×n矩阵的最大值以及位置。题目保证最大值 ...
只看楼主
li1346819486
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-11-6
结帖率:100%
 问题点数:0 回复次数:2 
本题要求编写程序,求一个给定的m×n矩阵的最大值以及位置。题目保证最大值惟一
输入格式:
输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。
输出格式:
输出在第一行中输出最大值,在第二行中按照“行下标 列下标”(下标从0开始)的格式输出最大值的位置。

#include<stdio.h>
int main()
{
    int m,n,i,j,sum;
    scanf("%d %d",&m,&n);
    int a[m][n];
    int b[i];
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            scanf("%d",&a[m][n]);
        }
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n-1;j++)
        {
            if(a[i][j]>a[i][j+1])
            b[i]=a[i][j];
            else
            b[i]=a[i][j+1];
        }
    }
    for(i=0;i<m-1;i++)
    {
        if(b[i]>b[i+1])
        sum=b[i];
        else
        sum=b[i+1];
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<n;j++)
        {
            if(sum==a[i][j])
            printf("%d\n%d %d\n",sum,i,j);
        }
    }
    return 0;
}
这个程序哪里错了,求助大神。
不能正确输出
搜索更多相关主题的帖子: 输出 for 最大值 sum i++ 
2019-11-19 20:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
在第二行中按照“行下标 列下标”(下标从0开始)的格式输出最大值的位置
最大值不止一个怎么办?

如果只输出第一个最大的值的位置
程序代码:
#include <stdio.h>

int main( void )
{
    size_t m,n;
    int a[6][6];
    scanf( "%zu%zu", &m, &n );
    for( size_t i=0; i!=m; ++i )
        for( size_t j=0; j!=n; ++j )
            scanf( "%d", &a[i][j] );

    size_t r=0, c=0;
    for( size_t i=0; i!=m; ++i )
        for( size_t j=0; j!=n; ++j )
            if( a[r][c] < a[i][j] )
                r=i, c=j;
    printf( "%d\n%zu %zu\n", a[r][c], r, c );
}

2019-11-20 08:51
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
int main()
{
  int i,m,n,*array;
  printf("请输入矩阵行数:");
  scanf("%d",&m);
  printf("请输入矩阵列数:");
  scanf("%d",&n);
  array=(int*)malloc(m*n*sizeof(int));
  printf("请输入该%d*%d矩阵:\n",m,n);
  for(i=0;i<m*n;i++)
  scanf("%d",&array[i]);
  int max=array[0];
  int index=0;
  for(i=1;i<m*n;i++)
  {
    if(max<array[i])
      {
        max=array[i];
       index=i;
    }
  }
  printf("您输入的矩阵中的最大值为:%d\n",max);
  printf("它所在的行号和列号分别是:%d,%d\n",(index/n)+1,(index%n)+1);
  return 0;
}


[此贴子已经被作者于2019-11-20 10:45编辑过]

2019-11-20 10:37



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




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

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