版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022/7/18电气与信息工程学院计算机系制造Lesson 9 数据的组织2022/7/18电气与信息工程学院计算机系制造学习目的:31学会运用数组处置程序中的数据2022/7/18电气与信息工程学院计算机系制造3数组概念2向量数学定义:一组既有大小又有方向的量例如:向量d:(1,3,4,6,5,2,0,8)向量b:(100,300,200,400)特点:1、是一组量2、有方向性,即每个数据在其中有位置2022/7/18电气与信息工程学院计算机系制造3数组概念2在C言语中,数组与向量对应,可以实现处置与向量相关的问题数组:假设干类型一样的相关数据(变量)顺序陈列在一同例如:向量d:(1,3,
2、4,6,5,2,0,8)465208132022/7/18电气与信息工程学院计算机系制造3数组概念2数组类型的运用背景处置向量问题1同时存在假设干个用来描画同一性质且不同个体的数据(向量)。2只需将这些数据组织在一同构成批量数据,运用循环进展处置。2022/7/18电气与信息工程学院计算机系制造3一维数组3类型 数组名 长度定义数组普通方式:int array 10例:float f 100; char ch 5;一切元素都是int数组名长度:10留意:必需是常量数组:array2022/7/18电气与信息工程学院计算机系制造3数组概念2数组名:d用位置(下标)表示。注:下标从0开场d0d1d
3、2d3d4d5d6d7数组特性:1、有一致的名字,即数组名3、可经过变量在其中的位置来表示它2、多个变量有序的陈列4、数组中的变量叫数组元素,它在其中的位置叫下标2022/7/18电气与信息工程学院计算机系制造3一维数组3数组定义后的元素初值是随机数普通需求我们来初始化int a10 = 1,2,3,4,5,6,9,0,12,-1;int a = 11, 22, 33, 44, 55 ;int a5 = 1 ;1234569012-1省略时,长度为5,2022/7/18电气与信息工程学院计算机系制造3一维数组3数组元素的援用 例:d3;#include int main() int d10=1
4、,0,4,2,3,4,5,6,30,40,s; s=d0+d1+d4+d8; printf(“s=%d,s); return 0; d2d6d2022/7/18电气与信息工程学院计算机系制造3数组概念2例:从键盘输入一个数,按二进制方式输出分析: 将一个数的一切二进制位看成一个向量例如:假设输入的是82那么是(0,1,0,1,0,0,1,0)问题转换成如何求该向量2022/7/18电气与信息工程学院计算机系制造3数组概念2C言语中的数组可以表示向量那么向量a(0,1,0,1,0,0,1,0)在C言语中就是01001001数组a因此问题转换成假设给数组a中的元素赋值提问:如何赋值,有没有规律?2
5、022/7/18电气与信息工程学院计算机系制造3数组概念2从键盘输入的是82d7 = 0d6 = 1d5 = 0d4 = 0d3 = 1d2 = 0d1 = 1d0 = 0最后按照顺序输出d0d7的值 d7=n%2;n=n/2; d6=n%2;n=n/2; d5=n%2;n=n/2; d4=n%2;n=n/2; d3=n%2;n=n/2; d2=n%2;n=n/2; d1=n%2;n=n/2; d0=n%2;n=n/2;2022/7/18电气与信息工程学院计算机系制造3数组概念2思绪1、定义一个数组,长度为82、定义变量n,i,n放所要转换的数,i作为访问数组中变量的位置3、从第7个开场,往前
6、逐个给数组中的变量赋值4、从第0个开场,往后逐个输出数组中的变量2022/7/18电气与信息工程学院计算机系制造流程图2022/7/18电气与信息工程学院计算机系制造3数组概念2#include int main( ) int d8,n,i; scanf(%d,&n); for(i=7;i=0;i-) di=n%2; n=n/2; for(i=0;i=7;i+) printf(%d,di); system(pause); return 0;2022/7/18电气与信息工程学院计算机系制造3数组的妙用3例:输出数列1,1,2,3,5,8的前20项11235813213455思绪:将数列看成一向量
7、1、定义一个长度20个的数组表示向量2、根据位置关系逐个计算每个变量(元素)的值2022/7/18电气与信息工程学院计算机系制造#include #define NUM 100 int main( ) int fNUM,i; f0=1; f1=1; for (i=2; iNUM; i+) fi=fi-1+fi-2; for (i=0; iNUM; i+) printf(“%d,fi); return 0;lesson9_01.c2022/7/18电气与信息工程学院计算机系制造3数组的妙用:课堂练习3求S=1/1+1/2+2/3+3/5+5/8+8/13+ 后面20项的和分析s=1/1+1/2+
8、2/3+3/5+5/8+ 式中各项都是1 1 2 3 5 8 13 数列中的值,将其求出来放在数组中,然后逐个相除2022/7/18电气与信息工程学院计算机系制造3一维数组的根本操作4数组的赋值利用赋值语句为数组赋值 for (i=0; i10; i+) votei = 0; 调用规范输入函数为数组赋值 for (i=0; i10; i+) scanf(“%d, &votei); int vote 10;2022/7/18电气与信息工程学院计算机系制造3一维数组的根本操作4数组的输出 for (i=0; i10; i+) printf(“%5d, votei); int vote 10;202
9、2/7/18电气与信息工程学院计算机系制造3数组运用5数组大小最好用宏来定义,以顺应未来能够的变化#define SIZE 10int aSIZE;留意:1、数组一旦定义,不能改动大小2、访问数组元素时,下标不能超越长度,即下标有效范围0,len)3、数组间不能整体赋值2022/7/18电气与信息工程学院计算机系制造3数组运用6假设有数组int a10=1,2,4,5,3,6,7,8,9,0;int b10;假设需求使数组b中元素的值与a的一样b=a (是错误的)正确做法for(i=0;i10;i+) bi=ai;2022/7/18电气与信息工程学院计算机系制造3课堂练习6从键盘输入某班10位
10、同窗C言语学习成果,输出最高分2022/7/18电气与信息工程学院计算机系制造3数组运用5例2:运用挑选法输出18内的一切素数23456789101112131415161712180000000030042022/7/18电气与信息工程学院计算机系制造#include #include #define NUM 18 int main( ) int dataNUM,i,j,n; for (i=0; iNUM; i+)/*给数组的元素赋值*/ datai=i+1; n=sqrt(NUM); for(i=1;in;i+) /*将数组中非素数置成0*/ for(j=i+1;jNUM;j+) if(d
11、atai!=0&dataj%datai=0) dataj=0; for(i=1;iNUM;i+)/*输出*/ if(datai!=0) printf(%6d,datai); return 0;lesson9_02.c2022/7/18电气与信息工程学院计算机系制造3数组运用5例3:知在一条铁路上有十个站:A,B,C,D,E,F,G,H,I,J,如以下图所示127ABCDEFGHJI10020056131389875火车票费用计算规那么:当乘车间隔=300公里时,超越部分每公里0.3元,设计一个程序,输入两个站的站名,计算其应付的火车票费用882022/7/18电气与信息工程学院计算机系制造3数
12、组运用5问题分析运用数组保管相邻站之间的间隔经过站名计算乘车间隔 计算火车票费用2022/7/18电气与信息工程学院计算机系制造#include #define NUM 9 /* 段数 */int main( ) int lineNUM = 100,200,56,131,38,98,75,88,127,i,distance=0; float value; char start,end,ctn; while(1) printf(请输入乘车起点站n); scanf(%c, &start); getchar(); printf(请输入乘车终站n); scanf(%c, &end); getchar(
13、); for(i=start-A;iend-A;i+) distance+=linei; if(distance%c站的火车票费用为%.2f元n,start,end,value); printf(能否继续(Y/N); scanf(%c,&ctn);getchar(); if(ctn!=Y) break; system(cls); return 0; lesson9_03.c2022/7/18电气与信息工程学院计算机系制造3数组运用5根据需求对数据进展统计 为了满足特定的需求,对一组数据的某些特征进展统计是一项经常遇到的根本操作。例如,统计一段文本中某个字符出现的频率;统计学生考试的平均成果等等
14、都属于统计操作。统计操作的结果往往是经过对一切数据进展扫描、判别或综合加工得到的。在C程序中,参与统计操作的批量数据可以用一维数组来组织,详细统计过程可以经过逻辑判别、累计、算术运算等根本操作手段实现。 2022/7/18电气与信息工程学院计算机系制造例4:统计一段文本中每个英文字母出现的次数。 分析:定义一个数组letter,存放英文字母出现的次数00000000letterA的次数B的次数C的次数循环字符数组,针对每个字母,找到其在数组letter中的对应位置,然后加13数组运用52022/7/18电气与信息工程学院计算机系制造00000000letterA的次数B的次数C的次数如何确定每
15、个字母在letter中的位置呢?A 对应 letter0B 对应 letter1C 对应 letter2下标:0 A-A下标:1 B-A 下标:2 C-A3数组运用52022/7/18电气与信息工程学院计算机系制造#include #define NUM 26 int main( ) int letterNUM = 0; char ch; int i; printf(nEnter text linen); while (ch=getchar() != n) if (A=ch & ch=Z) /* 检测能否为大写字母 */ letterch-A = letterch-A+1; else if (a=ch & ch=z) /* 检
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GB-T 37560-2019阻燃化学品 氰尿酸三聚氰胺盐中三聚氰胺和氰尿酸的测定》专题研究报告
- 《GB 5959.2-2008电热装置的安全 第2部分:对电弧炉装置的特殊要求》专题研究报告
- 《GBT 15447-2008 X、γ射线和电子束辐照不同材料吸收剂量的换算方法》专题研究报告深度
- 道路安全交通培训课件
- 2025年病案管理科护士长工作总结暨下一步工作计划
- 2026年江西高考化学考试题目及答案
- 递归分型技术
- 急性胸主动脉夹层评估与管理指南
- 云南国防工业职业技术学院《国防科技概论》2024-2025 学年第一学期期末试卷(特色课程)
- 边境管理知识课件
- 接处警培训课件
- 小区道闸广告合同(标准版)
- 2025年山西铁道单招试题及答案
- 现场缺陷件管理办法
- DB42T 831-2012 钻孔灌注桩施工技术规程
- DBJ04-T489-2025 《智慧园林建设标准》
- 学校餐费退费管理制度
- 初三语文竞赛试题及答案
- 2025-2030中国石膏墙板行业市场发展趋势与前景展望战略研究报告
- 2024年度企业所得税汇算清缴最 新税收政策解析及操作规范专题培训(洛阳税务局)
- 实验室检测质量控制与管理流程
评论
0/150
提交评论