《维数组元素输入输出.ppt》由会员分享,可在线阅读,更多相关《维数组元素输入输出.ppt(27页珍藏版)》请在三一办公上搜索。
1、ssmsV1.0_输入输出功能,程序演示程序分析数组的概念一维数组的定义和引用一维数组的初始化和赋值数组元素的遍历课堂练习课程小结,专业英语词汇,回顾与提问,回顾上次课主要内容检查学生课后实训与作业完成情况(包括小组评价)讲解ssmsv1.0案例主要功能,演示程序,演示学生成绩管理案例中 输入、输出成绩函数。提问:用什么样的方法可以实现象输入输出学生成绩那样,让一批同类型的相关数据共用一个标识符,而不必为每个数据选定一个名称?引出数组概念。,分析与讲解,输入学生成绩到数组中(用函数实现)输出学生成绩(用函数实现),数组的概念,数组是一组变量,满足下列条件:(1)具有相同的名字(2)具有相同的数
2、据类型(3)在存储器中连续存放每个变量名字相同下标不同,称为“数组元素”“数组名”代表整个数组,其值是这组变量在内存中所占连续存储空间的首地址。数组要先定义后使用。数组名不能与相同作用域的其他变量名重名,一维数组的定义、引用,一维数组的定义,定义数组的语法:int a10;数据类型说明符 数组名数组长度;,说明数组元素的数据类型,可以是任何一种基本数据类型和构造的数据类型,用户自定义的标识符,是一个常量表达式,表示数组单元的个数,注意:数组的空间分配是静态分配。数组长度只能是常量,长度不能在程序运行过程中发生变化。,一维数组的定义举例,int a;#define SIZE 100float b
3、SIZE;int n=10;char cn;int 2a10;,数组元素的引用,数组就是一组变量的集合,每个数组元素相当于是一个变量数组元素的表示:数组名下标如:int a5;所定义的数组就是五个变量的集合,分别是:a0,a1,a2,a3,a4int aN;下标的取值范围:0N-1,其中N为数组的大小下标是整型值,可以是整型常量、整型变量或整型表达式 如:ai a3+1 a2*i-1注意:下标不能越界,否则可能覆盖其他数据,造成严重后果,一维数组的初始化和赋值,一维数组的初始化,定义数组之后,与普通变量一样,数组是沒有初始值的,各存储单元的值都是不定的初始化:定义数组的同时赋初值语法:数据类型
4、说明符 数组名长度=数值1,数值2,;如:int data5=1,2,3,4,5;,一维数组的初始化,初始化注意事项:(1)允许初始化一部分元素,其他没有赋初值的元素初值为0;int a5=1,2;相当于 int a5=1,2,0,0,0;(2)允许初始化时省略数组的长度,数组的长度为赋初值的个数;int a=1,2,3,4,5;相当于 int a5=1,2,3,4,5;(3)不能对整个数组初始化;int data5=1;错误,应为:int data5=1,1,1,1,1;,一维数组的赋值,数组的赋值只能对数组元素单独操作,不能对数组整体操作。赋值的两种方式:int a5;赋值运算符 如:a3
5、=8;输入函数 如:scanf(“%d”,错误,应单独为每个元素赋值对数组的整体赋值只能在初始化时进行,一维数组的遍历,从键盘输入5个整数,保存到数组a中;再逆序输出。,main()int a0,a1,a2,a3,a4;scanf(“%d”,main()int a5;scanf(“%d”,从键盘输入5个整数,保存到数组a中;再逆序输出。,main()int a5;scanf(“%d”,一维数组的遍历,数组的遍历一般用循环语句实现注意下标的取值范围,不能越界(编译系统对下标的越界不做检查),解法1:记下最大数其值main()int i,max,a10;printf(enter data:n);f
6、or(i=0;imax)max=ai;printf(“最大数是%dn,max);,例题:从键盘输入10个整数存放在数组中,找出其中最大的一个数,输出该最大数。,解法2:记下最大数相应的下标main()int i,max_id,a10;printf(enter data:n);for(i=0;iamax_id)max_id=i;printf(“最大数是%dn,amax_id);,课堂练习,1、完成学生成绩输入的功能。在主菜单中增加“输入成绩”一项;在程序中增加ssmsV1.0_04模块的函数,函数原型为:int inputScore(int score,int length)在程序开头处声明该函
7、数,并在main函数的switch语句中进行调用,调试程序。2、完成学生成绩输出的功能。在主菜单中增加“输出成绩”一项;在程序中增加ssmsV1.0_05模块的函数,函数原型为:int outputScore(int score,int length)在程序开头处声明该函数,并在main函数的switch语句中进行调用,调试程序。,课堂练习,3、新建一个项目,建立一个能存放N(N是一个常量)个数据的数组,数组元素值为此数组元素下标的10倍,然后按正序和逆序输出定义输入函数:int input(int a,int len);定义正序输出函数:int outz(int a,int len);定义逆
8、序输出函数:int outn(int a,int len);编写main函数调用上述函数,实现输入和输出,更进一步,1)将课堂实训的第3题做一下修改:要求用数组实现输出1100中的所有奇数,怎么做?,更进一步,2)再考虑上面(1)步,要求实现求数组元素中所有下标为偶数的元素的和怎么做?,更进一步,3)想一想(或讨论),对数组元素初始化时有什么要求,对数组元素赋值采用初始化和从键盘输入两种方式各有什么利弊?对数组元素的下标有什么要求?,更进一步,4)总结与评价,本次课小结,数组的定义、初始化、引用、输入、输出概念、操作必须掌握数组下标从开始数组名代表数组首地址,是一个常量语言不允许动态定义数组,即定义数组时数组长度表达式不能含有变量数组元素与普通变量具有相同属性,可以进行算术运算和比较大小等操作,作业,1、从键盘输入10个整数保存到数组中,求和、平均值并输出。2、从键盘输入10个整数保存到数组中,求值最小的元素,将这个值最小的元素与数组的第一个元素交换。最后输出整个数组。3、从键盘输入10个浮点数保存到数组中,将这10个数逆序存放后输出。,注意用watch调试工具跟踪下标变量的值的变化情况。,