实例13_求解二维数组的最大元素和最小元素

实例说明:

看完题,我觉得作者应该就是让我输出一个数组中最大的数字和最小的数字吧,于是开始写了。

1、先给数组赋值

2、然后遍历数组,通过中间值,选出最大的和最小的。

 1 /**
 2  * Copyright (c) 1991 - 2016 Arvin Tang.
 3  * All rights reserved.
 4  *
 5  * 文件名称:实例13
 6  * 简要描述:求解二维数组的最大和最小元素
 7  *
 8  * 当前版本:1.0
 9  * 作    者:
10  * 完成日期:2016-1-7
11  * 修订说明:
12  *
13  * 取代版本:
14  * 作    者:
15  * 完成日期:
16  * 修订说明:
17  */
18 #include <stdio.h>
19 #include <stdlib.h>
20 //
21 //clrscr();函数不是标准的C函数,只存在Tuber C中且#include <conio.h>。
22 //但是可以用system("cls");代替,且#include <stdlib.h>。
23
24 int main(int argc, char const *argv[])
25 {
26     //求解二维数组的最大和最小元素
27
28     int max=0;//最大值
29     int min=0;//最小值
30
31     int n;//方阵阶次
32
33     int a[20][20];//暂时先定义一个最大20阶的
34
35     int row;//行
36     int col;//列
37
38     printf("请输入方阵的阶次:\n");
39     scanf("%d", &n);
40
41     for(row = 0; row < n; row++)
42     {
43         for(col = 0; col < n; col++)
44         {
45             scanf("%d", &a[row][col]);
46         }
47     }
48
49     for(row = 0; row < n; row++)
50     {
51         for(col = 0; col < n; col++)
52         {
53             if(a[row][col] > max)
54             {
55                 max = a[row][col];
56             }
57         }
58     }
59
60     for(row = 0; row < n; row++)
61     {
62         for(col = 0; col < n; col++)
63         {
64             if(a[row][col] < min)
65             {
66                 min = a[row][col];
67             }
68         }
69     }
70
71     printf("最大的数是:%d\n", max);
72     printf("最小的数是:%d\n", min);
73
74     return 0;
75 }

初始代码

等代码写完了,我发现功能实现了,但是似乎有点满足作者的要求啊!人家让先把每一行最大(小)的数字输出,然后再从这几个数字中比较出最大(小)输出。

代码

书上给的代码:

 1 #define MAXN 20
 2 int a[MAXN][MAXN];
 3 main()
 4 {
 5     int min,    /* 存储最小值 */
 6         max;    /* 存储最大值 */
 7     int row,col,n;
 8     clrscr();
 9     printf("Please input the order of the matrix:\n");/* 输入方阵的阶次 */
10     scanf("%d",&n);
11     printf("Please input the elements of the matrix,\n from a[0][0] to a[%d][%d]:\n",n-1,n-1);
12     for(row=0;row<n;row++)
13         for(col=0;col<n;col++)
14             scanf("%d",&a[row][col]);
15     for(min=a[0][0],row=0;row<n;row++)
16     {
17         /* 从每行选出最大数 */
18         for(max=a[row][0],col=1;col<n;col++)/*从row行选出最大数 */
19             if(max<a[row][col])
20                 max=a[row][col];
21         if(min>max)/* 保存至row行的最小数 */
22             min=max;
23     }
24     printf("The minimum of maximum number is %d\n",min);
25     for(max=a[0][0],row=0;row<n;row++)
26     {
27         /* 每行选出最小数 */
28         for(min=a[row][0],col=1;col<n;col++)/* 从row行选出最小数 */
29             if(min>a[row][col])
30                 min=a[row][col];
31         if(max<min)/*保存至row行的最大数 */
32             max=min;
33     }
34     printf("The maximum of minimum numbers is %d\n",max);
35     printf("\nPress any key to quit...\n");
36     getch();
37 }

书上的代码

时间: 2024-10-22 18:13:02

实例13_求解二维数组的最大元素和最小元素的相关文章

编程题:指向二维数组元素的指针变量。功能:已知二维数组a[2][3],输入输出全部元素。

#include<stdio.h> void main() { int a[2][3],i,j; int *p; /*用坐标法输入二维数组元素*/ for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); /*用指针法输出二维数组元素*/ p=a[0];         /*等价于p&a[0][0];*/ for(;p<a[0]+6;p++)   printf("%4d&quo

JS的二维数组

今天,记录一下JS的二位数组,并附上例题. 一.二维数组的本质:数组中的元素又是数组. 其实,我们都见过这样的二维数组,只不过没在意罢了,例如: var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]] //这就是一个二位数组arr[2][3]; // 11 注意:表示第三列第4行所在的元素.角标从0开始 二.下面介绍二维数组的初始化 记住了二维数组的本质,初始化也难不倒我们了.看一下实例 实例一: var arr = [[1,2],[a,

javascript二维数组

注:1.此实例是验证二维数组两种赋值方式:1)先声明后赋值.2)声明的同时赋值. 2.将数组元素输出到表格中.(表格的一个关键属性:border-collapse:collapse:合并表格单元格边框.) <!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><script type="text/javascript

C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <stdlib.h> int main() { int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3

首尾相接二维数组(圆柱)--求最大子矩阵

一 题目:一个首尾相接的二维数组,其中有有正数,有负数,求它的最大子矩阵. 二 设计思路: 这道题基本无难度,因为这道题可以参考以前做过的求解二维数组的子矩阵(不是首尾相接),所以可以简单划分为两部分.第一步先将它化为一维首尾相接的数组(环),然后再利用求解环中最大子数组的思想求解.具体将二维数组化为一维数组请参考(http://www.cnblogs.com/houtaoliang/p/4401630.html),在此只简单分析求解环的最大子数组. 求解环的最大子数组可分为两种情况.第一种:当

js 基于可视区域 创建展示区域对应的经纬度二维数组

本篇文章主要是分享下基于地图区域创建经纬度二维数组,需要的朋友可以过来参考下 接上个文章, 基于 地图区域,算出这个展示区域对应的点. 经纬度的变化关系:  XY页面展示上, 从左到右维度是增加 如: 106  -> 107 , 从上到下经度是减小  如:30 ->29 创建的时候需要确定从哪开始, 附上代码,如下: function getSizePointsData (latMin,latMax,lngMin,lngMax,lngStep,latStep){ // 区域的最小经度,最大经度

实验九:二维数组和字符数组的应用

知识点: 二维数组的定义及引用:1.二维数组的定义: 二维数组的定义形式:类型名   数组名[行长度][列长度]:例如:        int  a[3][2]:        定义1个二维数组a,3行2列,6个元素: int   b[5][10]:        定义1个二维数组a,5行10列,50个元素: 二维数组的引用:行下标的范围:0~行长度-1:                        列下表的范围:0~列长度-1: 字符串的存储和运算可以用一维字符数组实现: 一维字符数组的定义

二维数组的认识及其表示元素的两种方式

/* ============================================================================ Name : TeatArr.c Author : lf Version : Copyright : Your copyright notice Description : 二维数组的认识以及其表示元素的两种方式 备注说明 1 要理解二维数组的存储方式. 2 实际上利用a[i][j]的方式并不"正统",这是这靠近我们的 常识一些

perl二维数组

[转载]出处:http://www.cnblogs.com/visayafan/ 1 数组与引用 2 声明的区别 3 访问的区别 4 添加行元素 5 添加列元素 6 访问与打印 6.1 运算符优先级 6.2 访问一个 6.3 遍历 7 切片 1 数组与引用 此处引用相当于C中的指针.二维数组第一列不存储具体元素而是存储指向该行一维数组的引用. 2 声明的区别 数组用如下形式声明:数组名前加@,之后用(). my @AoA = ( [ "fred", "barney"