有一个3行4列的矩阵,编程求出其中最大

这篇具有很好参考价值的文章主要介绍了有一个3行4列的矩阵,编程求出其中最大。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 任务描述
  • 相关知识
    • 二维数组的定义
    • 二维数组的引用
    • 二维数组的初始化
  • 编程要求
  • 测试说明

任务描述

本关任务:有一个3行4列的矩阵,编程求出其中最大的那个元素的值,以及它所在的行号与列号。

相关知识

二维数组的定义

在实际问题中有很多变量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,多维数组可由二维数组类推而得到。

二维数组定义的一般形式是:

类型说明符 数组名[常量表达式1][常量表达式2]

其中常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。例如: int a[3][4]; 说明了一个 3 行 4 列的数组,数组名为a,其下标变量的类型为整型。该数组的数组元素共有3×4个,即: a[0][0],a[0][1],a[0][2],a[0][3] a[1][0],a[1][1],a[1][2],a[1][3] a[2][0],a[2][1],a[2][2],a[2][3]

二维数组在概念上是二维的,其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。

如何在一维存储器中存放二维数组,可有两种方式:一种是按行存放, 即放完一行之后顺次放入第二行。另一种是按列存放,即存放完一列之后再顺次存储第二列。

在C语言中,二维数组是按行排列的。即先存放第1行,再存放第2行,最后存放第3行。每行中的元素也是依次存放。

上述二维数组的元素排列顺序为:

a[0][0]→a[0][1]→a[0][2]→a[0][3]→a[1][0]→a[1][1]→a[1][2]→a[1][3]→a[2][0]→a[2][1]→a[2][2]→a[2][3]

C语言还允许使用多维数组。有了二维数组的基础,再掌握多维数组是不困难的。例如,定义三维数组的方法如下:

 
  1. float a[2][3][4]; //定义三维数组a,它有2页,3行,4列

二维数组的引用

二维数组的元素的表示形式: 数组名[下标][下标]

注意:

  1. 下标可以是整数,也可以是整型表达式;
  2. 数组元素可以出现在表达式中,也可以赋值。
  3. 在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。

二维数组的初始化

  1. 分行给二维数组赋初值。如: int a[3][4]= {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

  2. 可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。如: int a[3][4]= {1,2,3,4,5,6,7,8,9,10,11,12};

  3. 可以对部分元素赋初值。 如: int a[3][4]= {{1},{0,6},{0,0,11}};

  4. 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如: int a[3][4]= {1,2,3,4,5,6,7,8,9,10,11,12};

与下面的定义等价: int a[ ][4]= {1,2,3,4,5,6,7,8,9,10,11,12};

在定义时,也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。如: int a[ ][4]={{0,0,3},{ },{0,10}};

数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。

当然,前提是各数组元素类型必须相同。一个二维数组也可以分解为多个一维数组。C语言允许这种分解,如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:a[0]a[1]a[2]

对这3个一维数组不需另作说明即可使用。这3个一维数组都有4个元素,例如: 一维数组a[0]的元素为:a[0][0],a[0][1],a[0][2],a[0][3]

必须强调的是,a[0]a[1]a[2]不能当作数组元素使用,它们是数组名,不是单纯的数组元素。

编程要求

根据提示,在右侧编辑器补充代码,有一个3行4列的矩阵,求出其中最大的那个元素的值,以及它所在的行号与列号。

测试说明

平台会对你编写的代码进行测试:

测试输入: 55 8 74 66 32 12 1 36 94 45 65 88

预期输出: 55 8 74 66 32 12 1 36 94 45 65 88 max:94 row :3 colum :1

输入格式: 输入12个整数,用空格分隔。

输出格式: 前三行输出3行4列矩阵:每个数据间用Tab键隔开; 第四行输出最大值; 第五行输出最大值的行数; 第六行输出最大值的列数。


开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-471089.html

int main()
{  
    int a[M][N]; 
    int i,j,max,row=0,colum=0; 
    for(i=0; i<M; i++)              
      for(j=0; j<N; j++)           
      	{ 
            scanf("%d",&a[i][j]);  
       } 
    max=a[row][colum];
    for(i=0;i<M;i++)
    for(j=0;j<N;j++)
    {
        if(a[i][j]>max)
       {
            row=i;colum=j;
            max=a[row][colum];
       }
    }
	for(i=0; i<M; i++)             
	{  
       for(j=0; j<N; j++)         
       {  
        	printf("%d\t",a[i][j]);   
    	}
    	printf("\n"); 
  	}
 	 printf("max:%d\nrow:%d\ncolum:%d",max, row+1, colum+1); 
    return 0; 
}

到了这里,关于有一个3行4列的矩阵,编程求出其中最大的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包