有一个2*3的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号?要用C语言编写

如题所述

#include<stdio.h>

int main()

{

int a[2][3],i,j,max,n,m;

printf("input the array:");

for(i=0;i<2;i++)

     for(j=0;j<3;j++)

      scanf("%d",&a[i][j]);//输入两行三列的矩阵

for(i=0;i<2;i++)

    for(j=0;j<3;j++)

{

printf("%5d",a[i][j]);

if(j==2)printf("\n");//输出矩阵

}

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];//如果比max大就重新赋予max

n=i;

m=j;//记录那个数的位置

}

printf("a[%d][%d]=%d\n",n,m,max);//输出

return 0;

}//数组是从0,开始的


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-01

#include <stdio.h>

#include <stdlib.h>

void findMax(int *a,int m,int n)

{

    int i=0,j=0,p=0,q=0,max=0;

    for(i=0;i<m;i++)

    for(j=0;j<n;j++)

    {

        if(a[i*n+j]>max)

        {

            max=a[i*n+j];

            p=m;

            q=n;

        }

    }

    printf("The max num is %d,the line of %d ,the row of %d ",max,p,q);

}

int main()

{

    int m;int n;

    printf("输入行m,列n:");

    scanf("%d %d",&m,&n);

    int a[m][n];

    int i=0,j=0;

    for(i=0;i<m;i++)

    for(j=0;j<n;j++)

    {

        printf("input num a[%d][%d]",i,j);

        scanf("%d",&a[i][j]);

    }

    findMax(&a[0][0],m,n);

    printf("Hello world!\n");

    return 0;

}

第2个回答  推荐于2016-05-10

#include<stdio.h>

void main()

{

 float a[6],max;

 printf("请输入6个数\n");

 for(int i=0;i<6;i++)

  scanf("%f",&a[i]);

 max=a[0];

 for(i=1;i<6;i++)

  if(max<a[i])

   max=a[i];

 for(i=0;i<6;i++)

  if(a[i]==max)

  {

   printf("第%d行,第%d列的%.2f是最大值\n",i/2+1,i%2+1,max);

  }

}

本回答被网友采纳