版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE课题任务5.5某车企多年销售统计(二维数组)课型讲练授课班级授课时数2教学目标1、掌握二维数组的使用2、利用二维数组解决实际相关问题3、提高分析问题的能力教学重点1、二维数组的定义、存储形式、元素引用及初始化2、二维数组实际应用教学难点二维数组的输入输出(与循环嵌套相结合使用)学情分析一维数组已经学过对于初始化的一些问题学生应该比较容易接受。由于还没有学习线性代数,对于二维数组的描述不是特别的清楚。要多举例。教学效果教后记任务5.5某车企多年销售统计(二维数组)5.5.1任务目标新能源大客车在江苏不同城市1-6月的新增情况如表5-5-1所示,请编写程序输出该明线表。表5-5-1新增情况表苏州无锡常州南京1月241413162月201616253月183020434月24108125月105686月85575.5.2知识储备一维数组只能处理一种批量数据情况,如果同种数据类型,更多种情况,此时就需要引入多维数组。1.二维数组C语言允许任何类型的数组,甚至允许数组的数组。使用两对方括号,我们就能得到二维数组。要得到高维数组,只要简单地继续增加方括号即可。每使用一对方括号,我们就对数组增加了一维。数组的格式如表5-5-2所示表5-5-2数组的格式数组的声明注释inta[100];一维数组charb[20][30];二维数组floatc[2][3][4];三维数组一个k维数组的尺寸与各个维的尺寸有关。如果用Si代表数组的第i维尺寸,那么数组声明为S1*S2*…*Sk个元素分配的空间。在上表中,b有20*30个元素,c有2*3*4个元素。从数组的基地址开始,所有的数组元素都存储在连续的内存中。即使数组元素是一个接一个地连续存储,我们也经常把二维数组看作是由行和列组成的矩阵更为方便。例如,如果我们声明inta[2][5],那么我们数组元素的排列如表5-5-3所示:表5-5-3数组排列第1列第2列第3列第4列第5列第1行a[0][0]a[0][1]a[0][2]a[0][3]a[0][4]第2行a[1][0]a[1][1]a[1][2]a[1][3]a[1][4]2.二维数组的定义、引用和声明①二维数组的定义定义形式 类型数组名[行常量表达式][列常量表达式]; 可以看作元素是一维数组的一维数组如:inta[3][4];/*3行4列*/②二维数组元素的引用二维数组元素的表示形式为:数组名[下标][下标]如:a[2][3]、b[1][2]=a[2][3]/2、a[2][3]=3;注意:其中下标可以是整型表达式;不要写成a[2,3]等形式;应该注意下标值应在已定义的数组大小范围内;定义数组时用的a[3][4]与引用数组元素时用的a[3][4]的区别。③二维数组的初始化分行给二维数组赋初值:如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};可以将所有数据写在一个花括号内,按数组排列的顺序对元素赋初值如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};inta[3][4]={{1},{5},{9}};等价于inta[3][4]={{1,0,0,0},{5,0,0,0},{9,0,0,0}};inta[4][3]={{1,2},{4,5}};等价于inta[4][3]={{1,2,0},{4,5,0},{0,0,0},{0,0,0}};键盘输入5个同学的2门课程的成绩,显示每个同学的学号及成绩明细。3.示例程序代码:#include"stdio.h"voidmain(){ floatscore[5][2]; inti,j; for(i=0;i<5;i++)//外循环次数由人数确定 for(j=0;j<2;j++)//内循环次数由课程数确定 { scanf("%f",&score[i][j]); } printf("学号课程1课程2\n");//输出表头 for(i=0;i<5;i++) { printf("%d",i+1);//输出学号 for(j=0;j<2;j++) { printf("%.1f",score[i][j]);//输出每门课程的成绩 } printf("\n"); }}程序解析:给二维数组赋值,一般通过两重循环来实现,外循环确定行数,内循环确定列数。由于每个学生的两门成绩显示在一行,因此人数确定外循环次数,课程数确定内循环次数。第11行用于输出表头的语句必须在整个循环体的最外面,因此语句只需要执行一次。第14行用于输出学号的语句应放在内循环的外面,保证在循环输出各门课程成绩时,学号只输出一次。请注意第19行语句,这是一条换行语句,一定不能放在内循环里面,否则就不会产生二维表格的输出形式。如果放在内循环里面,结果会是怎么,请读者自行思考。5.5.3典型实例典型案例1:已知某品牌4S店2名销售的12个的销售额如表5-5-4所示,输出2名销售12个月的销售数据。表5-5-4销售额数据表1月份2月份3月份4月份5月份6月份7月份8月份9月份10月份11月份12月份销售1312424223013销售2244332143322典型案例1流程图如图5-5-1所示图5-5-1典型案例1流程图程序代码#include"stdio.h"voidmain(){ intsales[2][12]={{3,1,2,4,2,4,2,2,3,0,1,3},{2,4,4,3,3,2,1,4,3,3,2,2}}; inti,j; for(i=1;i<=12;i++) { printf("%d月份\t",i); } printf("\n"); for(i=0;i<2;i++) { for(j=0;j<12;j++) printf("%d\t",sales[i][j]); printf("\n"); }}典型案例运行截图如图5-5-2所示图5-SEQ图5-\*ARABIC5-2典型案例1运行截图典型案例2:从键盘输入某品牌新能源客车5名驾驶员12个月的工资,并输出。典型案例2流程图由三部分构成,整体思路流程图如图5-5-3所示,输入驾驶员流程图如图5-5-4所示,输出驾驶员工资流程图如图5-5-5所示。图5-5-3典型案例2整体思路流程图图5-5-4输入驾驶员流程图图5-5-5输出驾驶员工资流程图程序代码:#include"stdio.h"voidmain(){ floatsalary[3][6]; inti,j; for(i=0;i<3;i++) {printf("驾驶员%d六个月工资:",i+1); for(j=0;j<6;j++) { scanf("%f",&salary[i][j]); } } printf("驾驶员6个月的工资明线表\n"); for(i=0;i<3;i++){ printf("驾驶员%-4d",i+1); for(j=0;j<6;j++) printf("%d月份",j+1);//5个空格 printf("\n"); printf("");//10个空格 for(j=0;j<6;j++) printf("%-10.2f",salary[i][j]); printf("\n"); }}典型案例2运行截图如图5-5-6所示图5-5-6典型案例2运行截图典型案例3:从键盘输入某品牌新能源客车3名驾驶员6个月的工资,分别求出3名驾驶员的平均工资。典型案例3整体思路流程图如图5-5-7所示,驾驶员工资求和如图5-5-8所示,驾驶员求平均数如图5-5-9所示。图5-5-7典型案例3整体思路流程图图5-5-8典型案例3求驾驶员工资和流程图图5-5-9典型案例3求平均工资流程图程序代码#include"stdio.h"voidmain(){ floatsalary[3][6]={{4500,4007.5,5000,6000,6500,7000},{5500,5007.5,5500,5400,4500,6000},{4800,5107.5,5200,4800,5500,5000}}; floatavg_salary[3],sum[3]={0}; inti,j; for(i=0;i<3;i++) { for(j=0;j<6;j++) sum[i]+=salary[i][j]; } for(i=0;i<3;i++) { avg_salary[i]=sum[i]/6; } printf("3名驾驶员6个月的工资表:\n"); for(i=0;i<3;i++) { for(j=0;j<6;j++) printf("%10.2f",salary[i][j]); printf("\n"); } printf("每位驾驶员的月平均工资:\n"); for(i=0;i<3;i++) printf("%10.3f",avg_salary[i]);}典型案例3运行截图如图5-5-10所示图5-5-10典型案例3运行截图典型案例4:从键盘输入某品牌新能源客车5名驾驶员的姓名并输出。程序代码#include"stdio.h"voidmain(){ chardriver[5][20]; inti; printf("请输入五名驶员的姓名:"); for(i=0;i<5;i++){ gets(driver[i]); } printf("五名驶员的姓名分别为:"); for(i=0;i<5;i++) printf("%s",driver[i]);}典型案例4运行截图如图5-5-11所示图5-5-11典型案例4运行截图5.5.4任务分析与实践任务目标流程图如图5-5-12所示图5-5-12任务目标流程图程序代码#include"stdio.h"voidmain(){ intV_number[6][4]={{24,14,13,16},{20,16,16,25},//二维数组赋初值 {18,30,20,43},{24,10,8,12},{10,5,6,8},{8,5,5,7}}; inti,j; printf("苏州无锡
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国智能楼宇自动化系统行业市场现状供需分析及投资评估规划分析研究报告
- 2026中国稀土材料市场深度调研及竞争格局与投资战略规划报告
- 2026北京市平谷区事业单位招聘49人(第二次)备考题库及参考答案详解【轻巧夺冠】
- 2026湖南常德市临澧县教育局所属事业单位选调126人考前冲刺密卷含完整答案详解(考点梳理)
- 2026北京市交通委员会所属事业单位招聘9人(第二批)模拟试卷及参考答案详解(培优A卷)
- 2026广东湛江市旅游投资集团有限公司招聘笔试题库附完整答案详解(考点梳理)
- 2026河南中医药大学第一附属医院硕士研究生招聘81人(第3号)考前冲刺密卷附参考答案详解(培优)
- 2026永德县教育体育系统部分县直属学校公开选聘县内教师(31人)考前冲刺密卷带答案详解(培优)
- 2026年8月中央广播电视总台文艺节目中心招聘15人笔试题库(原创题)附答案详解
- 2026仟村行业市场供需分析及投资评估规划分析研究方案
- 基层卫生院预算管理制度
- 脊柱手术患者脑脊液渗漏护理专家共识(2024版)
- 建设工程造价司法鉴定报告范文
- 广州市番禺区市桥街社区卫生服务中心2025年招考第二批编外人员招聘备考题库及完整答案详解1套
- 2025年新《治安管理处罚法》知识考试题库及答案
- 2025年甘肃省药品检查员资格考试(药械化流通)综合试题及答案
- 2025年广州市番禺区大龙街社区卫生服务中心公开招考编外人员备考题库及完整答案详解一套
- 售前工程师转正述职报告
- 护理人员医德医风培训
- 安全阀拆装培训课件
- 河南省养老类建筑消防设计技术要点2025
评论
0/150
提交评论