第一部分数组 在C程序中声明一个变量,只能用于存储一个数据。 有时程序中需要存放一组数据,这就需要声明一个数 组 数组:数组必须先定义,后使用。最常用的是二维以 下的数组,尤其是一维数组
第一部分 数组 在C程序中声明一个变量,只能用于存储一个数据。 有时程序中需要存放一组数据,这就需要声明一个数 组。 数组: 数组必须先定义,后使用。最常用的是二维以 下的数组,尤其是一维数组
维数组的定义和初始化 定义格式: 元素类型名数组名[常量表达式] 说明: (1)元素类型名指定该数组各元素的数据类型 (2)用方括号[]括起来的常量表达式的值表示该数组含数组元 素的个数,即数组长度。 注意:引用时,数组元素的下标从0开始 如 int m[20] 表示整型数组m有20个元素:m[0],m[1].m[19] floatⅹ[10]; 表示实型数组x有10个元素:x[0],x[1],…x[9]
一维数组的定义和初始化 • 定义格式: 元素类型名 数组名[常量表达式] • 说明: (1) 元素类型名指定该数组各元素的数据类型。 (2) 用方括号[]括起来的常量表达式的值表示该数组含数组元 素的个数, 即数组长度。 ❖ 注意:引用时,数组元素的下标从0开始。 如: int m[20]; 表示整型数组m有20个元素:m[0],m[1]…,m[19]。 float x [10]; 表示实型数组x有10个元素:x[0],x[1],…x[9]
维数组元素的引用 数组元素的引用格式: 数组名[下标] (1)下标为整型表达式,它确定了引用元素的序号 (2)下标从0开始编号,最大等于定义的数组长度减1 在程序中数组元素等价于一个同类型的变量。 令注意:数组引用时千万不得越界。 例如: void maino intm[10]={1,234,56,7,8,9,0} m[9]=m[3]*6; /*正确,m[习]的值为24*/ m[6]=m[10 /*不正确,m[10]下标越界* printf("%d%d%%n",m[4],m[5],m[6],m[9])
一维数组元素的引用 • 数组元素的引用格式: 数组名[下标] (1)下标为整型表达式,它确定了引用元素的序号 (2)下标从0开始编号, 最大等于定义的数组长度减1 在程序中数组元素等价于一个同类型的变量。 ❖ 注意:数组引用时千万不得越界。 例如: void main() { int m[10]={1,2,3,4,5,6,7,8,9,0}; m[9]=m[3]*6; /* 正确, m[9]的值为24 */ m[6]=m[10]; /* 不正确, m[10]下标越界 */ printf ( "%d %d %d %d\n", m[4],m[5],m[6],m[9]); }
给数组元素读值、输出、处理的方法通常采用循环结构实 现,循环控制变量作为数组下标,对数组元素逐个进行操作。 例如:将数组m的十个元素输出 注意:数组m的输入输出 for(i=0;i<10;i++) 这样做是错误的 printf( %04d,, mi; scant(%od, m) printi 将十个数据从键盘输入存入数组m中 for(i=0;<10;i++) 使用数组的常见错误是下标 scanf( %d,, &mID 越界,对于这种错误C的编译 系统不检测错误,也没有警 告,但结果往往不正确
给数组元素读值、输出、处理的方法通常采用循环结构实 现,循环控制变量作为数组下标,对数组元素逐个进行操作。 例如:将数组m的十个元素输出 for (i=0;i<10;i++) printf(“%4d”,m[i]); 将十个数据从键盘输入存入数组m中 for(i=0;i<10;i++) scanf(“%d”,&m[i]); 注意:数组m的输入输出 这样做是错误的 scanf(“%d”,m); printf (“%d”,m); • 使用数组的常见错误是下标 越界,对于这种错误C的编译 系统不检测错误,也没有警 告,但结果往往不正确
例1:输入十个整数,选择出其中的最大数。 (1)将最大数存放在一个整型变量max中 (2)将最大数放在数组的最前端。 (注意:不能将原来数组的第一个元素覆盖)
例1:输入十个整数,选择出其中的最大数。 (1)将最大数存放在一个整型变量max中; (2)将最大数放在数组的最前端。 (注意:不能将原来数组的第一个元素覆盖)
(1)#include void maino Rint i, a[10, max; printf("input 10 numbers:In") for(i=0;imax)max=ail; printf(" max number is %d", max);
#include void main() {int i,a[10],max; printf("input 10 numbers:\n"); for(i=0;imax) max=a[i]; printf("max number is %d",max); } (1)
2)#include void maino Rint i, a[10], t; printf( input 10 numbers:n; for(i=0;ialod it=a; ai]=a[0; a[0=t; printf("max number is %d", a 0D;
#include void main() {int i,a[10],t; printf("input 10 numbers:\n"); for(i=0;ia[0]) {t=a[i]; a[i]=a[0]; a[0]=t;} printf("max number is %d",a[0]); } (2)
例2:输入十个整数,按照从大到小的顺序排列。 排序基本思想: 从全部10个数中选出最大的,将其放在最前端; 从第2-10个数中选出最大的,将其放在第二位置; 从第3-10个数中选出最大的,将其放在第三位置; 从第910个数中选出最大的,将其放在第9个位置;
例2:输入十个整数,按照从大到小的顺序排列。 排序基本思想: 从全部10个数中选出最大的,将其放在最前端; 从第2-10个数中选出最大的,将其放在第二位置; 从第3-10个数中选出最大的,将其放在第三位置; …………… 从第9-10个数中选出最大的,将其放在第9个位置;
#include <stdio.h void maino tij,a[10], printf("input 10 numbers: n) for(i=0;i<10;i++) scanf(%od", &aiD; for(i=0;i<9;i++) for(j=i+1:j<10j++) if(a[jaiD tt=ai; a=aj aj=t; 5 printf(" from big to small: n" ); for(i=0;i<10;i++) printf("%04d ,)
#include void main() {int i,j,a[10],t; printf("input 10 numbers:\n"); for(i=0;ia[i]) {t=a[i]; a[i]=a[j]; a[j]=t;} printf("from big to small:\n"); for(i=0;i<10;i++) printf(" %4d",a[i]); }
第二部分函数 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块, 特点 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 提高软件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充 开发方法:自上向下,逐步分解,分而治之
第二部分 函数 模块化程序设计 • 基本思想:将一个大的程序按功能分割成一些小模块, • 特点: –各模块相对独立、功能单一、结构清晰、接口简单 –控制了程序设计的复杂性 –提高软件的可靠性 –缩短开发周期 –避免程序开发的重复劳动 –易于维护和功能扩充 • 开发方法: 自上向下,逐步分解,分而治之