第5章数组
第5章 数组
前一页 问题提出(一) void main( int stul,stu2,stu3,stu4,stu5,stu6,stu7,...,stu100,sum; float aver; printf("\nenter 100 students grade:") scanf("%d,%d,%d",&stul,&stu2,&stu3); scanf("%d,%d,%d",&stu4,&stu5,&stu6); scanf("%d,%d,%d",&stu98,&stu99,&stu100); sum=stu1+stu2+stu3+stu4+stu5+stu6+...+stu100; aver=(float)sum/100; printf("\n100 students aver:%f",aver); 成都信息工程学院较件工程系 【课间体息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 问题提出(一) 编程计算5个学生的平均成绩。 分析:需要5个float类型变量用于存放5个人 的成绩,再用一个float类型变量用于存放5个 人的平均成绩。 再进一步要求:计算100个学生的平均成绩。 void main() { int stu1,stu2,stu3,stu4,stu5,sum; float aver; printf("\nenter 5 students grade:"); scanf("%d,%d,%d,%d,%d",&stu1,&stu2,&stu3, &stu4,&stu5); sum=stu1+stu2+stu3+stu4+stu5; aver=sum/5; printf("\n5 students aver:%f",aver); } void main() { int stu1,stu2,stu3,stu4,stu5,stu6,stu7,…,stu100,sum; float aver; printf("\nenter 100 students grade:"); scanf("%d,%d, %d",&stu1,&stu2,&stu3); scanf("%d,%d, %d",&stu4,&stu5,&stu6); ……. scanf("%d,%d, %d",&stu98,&stu99,&stu100); sum=stu1+stu2+stu3+stu4+stu5+stu6+…+stu100; aver=(float)sum/100; printf("\n100 students aver:%f",aver); }
前一页 ★ 问题提出(二) 再进一步要求:对全体同学的学习成绩进行简单 处理(排序、求最高分、求最低分) 怎么求最高分,最 低分?要写多少 if..else..啊? 18:14:16 ★) 成都倍惠工程学院换件工程系 课间休息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 问题提出(二) 再进一步要求:对全体同学的学习成绩进行简单 处理(排序、求最高分、求最低分……) 怎么求最高分,最 低分?要写多少 if…else…啊?
前一项 ★ 解决办法 什么是 数组呢? 用数组p可共用一个scanf命令,升用循环结构读 取。 int score[100],i; for(i0;i100;i++) scanf(“%d”,&score[i]); 数组是有序数据的集合。数组中的每一个元素 都属于同一个数据类型。用一个统一的数组名 和下标来唯一地确定数组中的元素。 18:14:16 ★) 成都倍惠工程学院软件工程系 课间体息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 解决办法 用数组,可共用一个scanf命令,并利用循环结构读 取。 int score[100],i; for (i=0;i<100;i++) scanf(“%d”,&score[i]); 什么是 数组呢? 数组是有序数据的集合。数组中的每一个元素 都属于同一个数据类型。用一个统一的数组名 和下标来唯一地确定数组中的元素
★ 前一页 本章内容 ▣7.1一维数组及其应用 ▣7.2二维数组及其应用 ▣7.3字符数组与字符串 数组的定义 数组的初始化 数组的引用 18:14:16 ★ 成都倍惠工程学院换件工程系 课间休息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 本章内容 7.1 一维数组及其应用 7.2 二维数组及其应用 7.3 字符数组与字符串 数组的定义 数组的初始化 数组的引用
7.1一维数组 口7.1.1一维数组的定不能用() 1.形式 类型说明符数组名[常量表达式]: 合法标识符 表示元素个数 例:int a float b[20],c[15]; 18:14:16 ★ 成都倍惠工程学院软件工程系 课间休息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 7.1 一维数组 7.1.1 一维数组的定义 1.形式 类型说明符 数组名[常量表达式]; 例:int a[10]; float b[20],c[15]; 合法标识符 表示元素个数 不能用( )
前一页 2.在内存分配若干连续空间给数组。 nta[10]; 定义一个有10个元素的数组,每个元素的类型均为 int 使用a[0]、a[1]、a[2]、、a[9]这样的形式访 问每个元素。可以像使用普通变量一样使用他们。 系统会在内存分配连续的10个int空间给此数组 直接对a的访问,就是访问此数组的首地址 数组首地此 a[81 a1] 编译时分配连续内存 ●a 18:14:16 内存字节数=数组大小* 咸都信息工程学院轻件工程图 sizeof(元素数据类型)
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 2. 在内存分配若干连续空间给数组。 编译时分配连续内存 内存字节数=数组大小* sizeof(元素数据类型) int a[10]; 定义一个有10个元素的数组,每个元素的类型均为 int 使用a[0]、a[1]、a[2]、……、a[9]这样的形式访 问每个元素。可以像使用普通变量一样使用他们。 系统会在内存分配连续的10个int空间给此数组 直接对a的访问,就是访问此数组的首地址 a 数组首地址 a[9] a[8] a[7] a[1] a[0] …
前一页★ 3.说明: (1).数组名遵循标识符命名规则; (2).常量表达式用方括弧括起来; (3).常量表达式为数组元素个数,即数组长度; 其下标值从0开始。 (4).数组类型为数组中每一个元素类型 18:14:16 ★ 成都倍惠工程学院软件工程系 课间休息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 3.说明: (1).数组名遵循标识符命名规则; (2).常量表达式用方括弧括起来; (3).常量表达式为数组元素个数,即数组长度; 其下标值从0开始。 (4).数组类型为数组中每一个元素类型
前一页 特别注意 例如:/*以下是一个典型的错误定义方式!*/ int n; scanf(%d”,&n); int a[n]; (×不能用变量定义数组维数) 18:14:16 ★ 成都倍惠工程学院换件工程系 课间休息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 特别注意 例如: /*以下是一个典型的错误定义方式!*/ int n; scanf(“%d”,&n); int a[n]; (不能用变量定义数组维数)
前一页 问题解决 编程计算5个学生的平均成绩。su之2000 stu[O] 2002 void main( stu[1] stu[5] 2004 stu[2] 2006 stu[3] float stul,stu2,stu3,stu4,stu5,sum; 2008 stu[4] float aver; printf("\nenter 5 students grade:") scanf("%d,%d,%d,%d,%d",&stul,&stu2,&stu3, &stu4,&stu5); sum=stu1+stu2+stu3+stu4+stu5; aver=(float)sum/5; printf("\n5 students aver:%f",aver); 息
成都信息工程学院软件工程系 前一页 课间休息 18:14:16 问题解决 编程计算5个学生的平均成绩。 void main() { float stu1,stu2,stu3,stu4,stu5,sum; float aver; printf("\nenter 5 students grade:"); scanf("%d,%d,%d,%d,%d",&stu1,&stu2,&stu3, &stu4,&stu5); sum=stu1+stu2+stu3+stu4+stu5; aver=(float)sum/5; printf("\n5 students aver:%f",aver); } stu[5] stu[0] 2000 2002 2008 stu[1] stu[2] stu[3] stu[4] 2004 2006 stu