输出二维数组中的最大值,并输出所在位置 / 行数 和 列数 您所在的位置:网站首页 二维数组数据输入方法 输出二维数组中的最大值,并输出所在位置 / 行数 和 列数

输出二维数组中的最大值,并输出所在位置 / 行数 和 列数

#输出二维数组中的最大值,并输出所在位置 / 行数 和 列数| 来源: 网络整理| 查看: 265

本文意在求某二维数组中, 最大值, 且最大值所在行数和列数.

理一理思路:

首先, 根据题意,我们要明白二维数组元素的排列方式, 表达形式, 为了方便介绍,我们先将所有的元素都进行赋值; 创建一个完整的二维数组;(赋初始值是为了方便介绍,也可以从键盘中获取) 其次, 我们要得到行数 , 列数 和最大值, 我们得先申请变量分别来接收 行数, 列数 和最大值的数值; 然后我们得申请变量代表我们的元素, 二维数组存在行 和 列, 那么我们得申请行变量和列变量来分别代表行和列. 重点:怎么去实现求得最大值呢? 我们不妨假设一个数,a [ 0 ] [ 0 ](数组的第一个元素)就是最大值,这是假设条件,不用在意到底是不是。

为什么这么假设呢? 因为我们要求得这个数组的最大值,那么我们肯定就需要对这个数组进行遍历(游走一边左右的值),最方便的就是顺序遍历,从第一个元素开始,既然是第一个元素开始遍历,那就干脆假设第一个元素就是最大值好了,它自动依次和后面的元素进行比较。 如果后面的值大于a [ 0 ][ 0 ], 那么发生交换,发生交换后,在同一行中继续比较,同一行比较完后,列数增加,到下一行进行比较,当所有行数和列数都比较完了的时候,最大数就出来了。

在此,我们要清楚二维数组是按照顺序依次进行排列的。

最后, 进行比较和输出.

具体实现过程如下:

#include #include #include #include int main() { int a[3][4]={{2,3,4,5},{5,6,7,8,},{90,5,6,34}}; //创建二维数组, 进行赋值(注意掌握二维数组的表达方式,不只是这一种) int h=0; //申请变量空间 h, 用来接收最大元素所在——行数 int L=0; //申请变量空间 L, 用来接收最大元素所在 —— 列数 int max=a[0][0]; //申请变量空间 max, 用来接收最大值,假设数组中第一个元素a[0][0]最大,进行赋值 int i; //数组行 int j; //数组列 for(i=0;i if(a[i][j]>max) //判断,如果其他元素 > max; { max=a[i][j]; //将a[i][j] 的值赋给max; h=i; //将最大值a[i][j]中的 i (行)赋值给 h; L=j; //将最大值a[i][j]中的 j (列)赋值给 L; } } } printf("max=%d h=%d l=%d\n",max,h,L); //输出相关数据,此刻需要注意,打印一定是在循环体外,不能在循环体内部。 return 0; }

总结:二维数组中求得最大值,首先要明白怎么去遍历二维数组,怎么去将二维数组中的元素进行比较,这中间就要明白二维数组是怎么进行排列的。 注意,本方法中最大值的赋值,其实就是两个元素的互换,只不过是从a [ 0 ][ 0 ]开始,依次后后面一个元素进行比较,和冒泡算法很像。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有