全国计算机二级C语言程序设计讲义__一维数组和二维数组

上传人:油条 文档编号:26838904 上传时间:2018-01-02 格式:PPT 页数:28 大小:155.50KB
返回 下载 相关 举报
全国计算机二级C语言程序设计讲义__一维数组和二维数组_第1页
第1页 / 共28页
全国计算机二级C语言程序设计讲义__一维数组和二维数组_第2页
第2页 / 共28页
全国计算机二级C语言程序设计讲义__一维数组和二维数组_第3页
第3页 / 共28页
全国计算机二级C语言程序设计讲义__一维数组和二维数组_第4页
第4页 / 共28页
全国计算机二级C语言程序设计讲义__一维数组和二维数组_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《全国计算机二级C语言程序设计讲义__一维数组和二维数组》由会员分享,可在线阅读,更多相关《全国计算机二级C语言程序设计讲义__一维数组和二维数组(28页珍藏版)》请在金锄头文库上搜索。

1、第8讲 一维数组和二维数组,一、一维数组 1、一维数组的定义 2、一维数组元素的引用 3、一维数组的初始化二、二维数组 1、二维数组的定义和引用 2、二维数组的初始化,数学中:a1,a2,a3,ai,an,C程序中:a0,a1,a2,ai-1,an-1,数组是数目固定,类型相同的若干变量的有序集合。 数组中的每一个数称为数组元素,数组中的每一个元素都属于同一个数据类型。 在内存中数组占有一段连续的存储空间。,一、一维数组,1、一维数组的定义,定义的格式: 类型说明符 数组名整常量表达式,;,说明:,类型说明符:表明该数组所属类型,即数组元素的类型。,数组名:即数组的名称,其命名方法同变量名。,

2、 :下标运算符,可通过该运算符的个数反映出数组的维数。,整常量表达式:为一整常量表达式,表明数组的大小。,特点:,数组元素的个数必须是确定的,数组元素的类型必须一致,一维数组在内存中的存放方式:,数组定义以后,编译系统(计算机)将在内存中开辟一块连续的存储单元用于存放数组元素,数组名表示存储单元的首地址,存储单元的大小由数组的类型和数组的大小决定。,例如 int a5;,引用方式: 数组名下标,2、一维数组元素的引用,说明:下界 下标 上界;下界0;上界整常量表达式1。,下标为整型表达式;,一个数组元素实质是一个变量,代表内存中的一个存储单元。引用后的数组变量也称下标变量。,例 #define

3、 N 20 int a5; float f1N+6;,说明:a5:a0,a1,a2,a3,a4f1N+6:f10,f12,f125,注意: 引用a5,f126编译不报错,但不能得到正确的运行结果。,一维数组元素引用的规定:,数组必须先定义后使用。,数组元素只能逐个被引用,不能一次引用整个数组。,对数组中所有元素逐个引用时,通常可使用循环结构。,例:,1)float b12; b1=1.0; b3=7.6; b0=b1+b3; b2=b1-b3; ,2)int j, a10; for ( j=0; j10; j+ ) aj=j;,数组的初始化:指定义数组时对数组元素赋以初值。,3、一维数组的初始

4、化,格式: 类型符 数组名表达式初值表;,说明:给全部元素赋初值。给部分元素赋初值。给全部元素赋初值时可不指定数组的长度。,给全部元素赋初值。 例 int a8= 0,1,2,3,4,5,6,7 ;,给部分元素赋初值。 例 int a8= 0,1,2,3,4 ;,给全部元素赋初值时可不指定数组的长度。 例 int a = 0,1,2,3,4,5,6,7 ;,例6.1 统计全班32名同学某门功课的平均成绩,找出最高分,输出。,main( ) int i, sum, max, a32 ; float average; for ( i=0; i max ) max=ai; average=(floa

5、t)sum/32; printf(Average=%.2f,MAX=%dn,average,max); ,例6.2 将一个数组中的值按逆序重新存放,并输出它。 这里数组长度为N。,分析:N-S图如下,程序:,define N 5main( )char aN, temp; int i; printf(“Enter array a:n”); for(i=0;iN;i+) scanf(“%c”,例6.3 用起泡法排序。 将任意十个数按由小到大的方式排序。,例:,第 一 轮,682931,682931,628931,628931,628931,628391,628391,628319,628319,6

6、28319,268319,268319,268319,263819,263819,263189,263189,第 二 轮,思路:将相邻两个数进行比较,使小数在前,大数在后。,分析说明:,1)相邻两数比较: ajaj+1,2)第一轮:6个数,j=15;循环5次,找出最大数,放在最后。,3)第二轮:5个数,j=14;循环4次,找出次大数,放在最大数前。,4)余此类推,经过5轮,将6个数排序输出。所以:外循环为 i=04,内循环为:j=05-i;,即:for ( i=0; i5 ; i+) for (j=0; j6i; j+) if ( ajaj+1) ajaj+1 ,程序:,main( ) int

7、 a10, i, j, k; printf(请任意输入10个整数:n); for ( i=0 ; iaj+1) k=aj;aj=aj+1;aj+1=k; printf(按由小到大的顺序输出10个整数是:n); for (i=0; i10; i+) printf(“%d,,ai); printf(”b。n”); ,二、二维数组,1、二维数组的定义和引用,二维数组的定义格式:类型说明符 数组名整常量表达式1整常量表达式2,存储方式: 在计算机中二维数组的元素按行顺序存放。,注意: 0下标1常量表达式1-1; 0下标2常量表达式2-1。,二维数组的引用格式: 数组名下标1下标2,例:int m23

8、合法引用格式为: m00 m01 m02 m10 m11 m12,说明:给全部元素赋初值。给部分元素赋初值。给二维数组的全部元素赋初值,可以不指定第一维的长度,但第二维的长度不能省略。,2、二维数组的初始化,二维数组初始化通常是按行进行的。,格式:类型符 数组名表达式1表达式2=初值表;,二维数组初始化举例:,给全部元素赋初值。 例 int a34=0,1,2,3,4,5,6,7,8,9,10,11; 或写成: int a34=0,1,2,3,4,5,6,7,8,9,10,11;,给部分元素赋初值。 例 int a34=0,1,4,5,6,8,9,10,11; 或写成: int b34=0,1

9、,2,3,4,5,6 ;,给二维数组的全部元素赋初值,可以不指定第一维的长度,但第二维的长度不能省略。 例 int a 4=0,1,2,3,4,5,6,7,8,9,10,11; 或写成: int a 4=0,1,2,3,4,5,6,7,8,9,10,11;,例6.4 矩阵的转置。,分析:将矩阵Am*n行列互换后,得一新矩阵为Bn*m。 它们的元素对应关系为:ai, j = bj, i,程序:,main() int i,j,a34,b43; for (i=0;i3; i+ ) for ( j=0; j4 ; j+ ) scanf(%d, ,例6.5 打印阳辉三角。(要求打印N行),杨辉三角形是(

10、a+b)的n次幂展开后各项的系数。例如:,分析:杨辉三角各行的系数有如下规律 (1)各行第一个数都是1; (2)各行最后一个数为1; (3)从第3行起,除上面指出的第一个数和最后一个数外,其余各数是上一行同列和前一列两个数之和。,11,2,11,3,3,11,4,6,4,1,a32=a21+a22,a44=a33+a34,表示为通式即:,aij=ai-1j+ai-1j-1,N-S图为:,程序:,define N 10main( ) int i, j, aNN; for(i=0;iN;i+) aii=1; ai0=1; for(i=2;iN;i+) for(j=1;j=i-1;j+) aij=ai-1j+ai-1j-1; for(i=0;iN;i+) for(j=1;j=i;j+) printf(“%6d”, aij); print(“n”);,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号