理解一维数组的精髓,二维数组更容易掌握了。
先来复习一维数组程序应用,请填空统计全班某门功课的平均分数和最高分数 (设全班55人)。
问题分析:求全班某门课的平均分和最高分
模式识别:平均分为累加求和,再除以人数即可。求最高分可用“打擂台”方法求最大值。
模式归纳:用数组表示全班成绩,用循环求平均分和采用打擂台算法求最高分。用printf语句输出结果。
程序实现:
# define N 55
main()
{ int i,sum=0,max,score[N];
float average;
printf(“input everyone’s score:\n”);
for( _____________;_________;_________ )
scanf(“%d”,__________);
for(______;______;_______ )
{sum+=_______;
if(score[i]>max) max=________;}
average=_________;
printf(“average=%f\n”,average);
printf(“max=%d\n”,max);
}
答案:
在处理有些问题时需要用到二维数组来处理。例如,有4个小分队,每队有5名队员,要把这些队员的游泳成绩用数组保存起来,这就需要用到二维数组,如图。如果建立一个数组score,它应当是二维的,第一维用来表示第几分队,第二维用来表示第几个队员。如score2,3表示2分队队员3的成绩,她的值是87.
队员1 | 队员2 | 队员3 | 队员4 | 队员5 | |
1分队 | 87 | 75 | 93 | 82 | 89 |
2分队 | 91 | 84 | 87 | 92 | 90 |
3分队 | 76 | 79 | 84 | 88 | 80 |
4分队 | 91 | 95 | 92 | 83 | 85 |
一、怎样定义二维数组
(一)二维数组的定义
二维数组定义基本概念与方法和一维数组相似,一般形式为:
类型符 数组名[常量表达式][常量表达式];
如int a[3][4],b[4][M];(M为符号常量)
定义a为3*4(3行4列)的整型数组
b为4*M(4行M列)的整型数组
C语言对二维数组采用这样的定义方式,是的二维数组可被看作一种特殊的一维数组:她的元素又是一个一维数组。例如,可把a看作一种特殊的一维数组,它有3个元素:a[0],a[1],a[2]
每个元素又是一个包含4个元素的一维数组,如图:
可以把a[0],a[1],a[2]看作一维数组名。上面定义的二维数组可以理解为定义了三个一维数组,即相当于:
Int a[0][4],a[1][4],a[2][4];
此处把a[0],a[1],a[2]看作一维数组名。C语言用这种处理方法在数组初始化和用指针表示时显得很方便,这在以后会体会到。
(二)二维数组的存储
C语言中,二维数组中元素排列的顺序是按行存放的,记载内存总顺序存放第1行的元素,接着在存放第2行的元素。
如 int a[3][2];a[3][2]中的元素在内存中按行连续排放,如图.
注意:二维数组在逻辑上,有行列关系。但在内存中,各个元素是连续存放的,是线性的,而非二维的。这点务必请明确。
二、怎样引用二维数组的元素
同一维数组,二维数组的表示形式为:
数组名[下标][下标]
下标应是整型表达式。
如:int a[2][4];
二维数组下标的有效范围同一维数组,均从0开始,最大值为定义时下标减1。
如a数组元素的下标下限值是a[0][0],上限值是a[1][3]。这点要特别注意。
数组元素也可以出现在表达式中,也可以被赋值,例如:
b[1][2]=a[1][3]/2;
三、二维数组的初始化
可用“初始化列表”对二维数组初始化。如果不给二维数组初始化,则系统默认二维数组各元素为0.
【内蒙古发布冰雹橙色预警信号】财联社6月18日电,内蒙古自治区气象台16时35分发布冰雹橙色预警信号:6小时内呼和浩特市东北部、乌兰察布市中部、赤峰市东北部、通辽市西北部、兴安盟西北部可能出现冰雹天气,并可能造成雹灾。
6月16日,由中信银行西安分行参与承销的中科创星科技投资有限公司2025年度第一期科技创新债券成功发行。本期债务融资工具发行人为中科创星科技投资有限公司(以下简称“中科创星”),发行规模4亿元,发行期限为5+5年,由中债信用增进投资股份有限公司提供全额担保。该笔债务融资工具是“科技板”民营股权投资机
近日,部分自媒体发布“武汉大学教职工校园内蛮横别停骑自行车学生”“武大副校长子女驾车逼停学生”等内容,引发不明真相的网友讨论。6月17日,极目新闻记者采访了武汉大学保卫部相关负责人,对方表示:谣言,已报案!该负责人介绍,本次谣言起于6月14日保卫部主动通报的一起事件——5月18日20时39分,因校内
深圳市市场监督管理局网站6月16日消息,日前,深圳罗马仕科技有限公司按照《消费品召回管理暂行规定》的要求,向深圳市市场监督管理局报告了召回计划,召回的三款产品共计491745台。将自16日起,召回2023年6月5日至2024年7月31日期间制造的部分罗马仕ROMOSS牌移动电源。具体型号及生产批次:
6月18日,2025陆家嘴论坛在上海举办,中国证监会主席吴清出席。吴清在主题演讲中表示,将继续充分发挥科创板示范效应,加力推出进一步深化改革的“1+6”政策措施。“1”即在科创板设置科创成长层,并且重启未盈利企业适用科创板第五套标准上市,更加精准服务技术有较大突破、商业前景广阔、持续研发投入大的优质
网站内容来自网络,如有侵权请联系我们,立即删除!
Copyright © 黑兔子百科网 琼ICP备2024032622号-19