C语言利用数组处理数据.ppt
《C语言利用数组处理数据.ppt》由会员分享,可在线阅读,更多相关《C语言利用数组处理数据.ppt(32页珍藏版)》请在三一办公上搜索。
1、第6章 利用数组处理批量数据,数学科学学院:汪小平,一维数组概述,C语言简单变量无法表示下标,当要表示数学中一系列数:a0,a1,a2,an时,就无能为力,如果用单个变量表示,很难简便的表达算法。,#include int main()int i,a1,a2,a3,sum=0;scanf(%d%d%d,一维数组概述-数组的声明与引用,C语言的数组弥补了这一点。下面是改写后的程序:,#include int main()int i,a3,sum=0;scanf(%d%d%d,特别注意:C语言数组下标都是从0开始,因此定义为a3,只能取a0、a1、a2。,一维数组概述-数组的声明与引用,利用数组下
2、标的变化,可以使表达形式不变,但运算内容变化,所以数组通常与循环联系,以构造简便有效的算法。从存储上讲,数组就是在内存分配了一连续空间,存储数组元素。其中数组名即是所分配内存的首地址。当访问数组元素ai时,编译器通过运算得出第i个元素的地址,再访问其中的元素,计算方式如下:a+i*sizeof(数组类型)-第i个元素在内存中地址 特别注意,ai相当于是一个变量,使用方式与一般变量完全一样。,在C程序中不用加,C语言会根据声明中a的类型自动乘上,一维数组概述-数组的声明与引用,整数、浮点数、字符三种类型,都可以声明对应的数组,访问方式完全一样,float f10,sum=0.0;f9=3.141
3、56;printf(“%f”,f9);,#include int main()int i;char a10;for(i=0;i=0;i-)printf(%c,ai);return 0;,一维数组的初始化,三种数组的初始化非常相似。数组在定义时就可以初始化元素,格式为:数组类型 数组名常量表达式=对应类型元素列表 例如:int a4=1,2,3,4;数组元素如果没有初始化,其值是不定的。初始化规则有下面几条:列表元素个数可以少于数组元素个数,这时剩下元素初始化为0(字符类型相当于0)。切记不能多于定义的元素个数,否则编译会报错 例:int a10=0;,一维数组的初始化,利用初始化,也可以不定义
4、数组长度,通过初值列表确定元素的个数。例:char ch=C,h,i,n,a;,一维数组应用举例,例1 输出以下的杨辉三角形(要求为12行),一维数组应用举例,#include#define N 12int main(void)int i,j;int aN=1;/第一个元素为1,其余元素为0 printf(%-5dn,a0);for(i=1;i0;j-)aj+=aj-1;for(j=0;j=i;j+)printf(%-5d,aj);putchar(n);return 0;,一维数组应用举例,例2 从外界读入一个整数,编程显示该数的32位补码。,一维数组应用举例,#include int mai
5、n(void)int k,i=0;unsigned kk;char ch32=0;scanf(%d,scanf(%d,一维数组应用举例,例3 输入10个数,进行排序,升序输出。,分析:排序方法很多,简单的有:直接插入排序、冒泡法、简单选择排序。这里用简单选择排序。,一维数组应用举例,#define N 10#include int main(void)int i,j,k,t,aN;for(i=0;iN;i+)scanf(%d,二维数组概述,在数学中,经常用到矩阵,对应到C语言,用二维数组表达矩阵。例如:int a43;声明了一个四行三列的一个矩阵。若要访问二维数组的第i行第j列元素,用aij
6、一维数组的使用,通常用单重循环,对应的,二维数组的使用,通常使用二重循环,for(i=0;iM;i+)for(j=0;jN;j+)scanf(%d,二维数组概述,若有定义:int aMN;。数组中的元素C语言是按行存储在一片连续的内存内。a是数组在内存中首地址。同时,M行的二维数组在C语言中可以看作M个一维数组,其中a0是第一行的数组首地址,a1是第二行的首地址,由于数组元素在内存是连续存放,所以元素aij在内存中的地址为(N是列数):a+i*N+j 二维数组在定义时也可以初始化 int a23=1,2,3,4;,二维数组举例,例4 完成矩阵的行列互换。,#include int main(v
7、oid)int i,j,t,a33=8,1,6,3,5,7,4,9,2;for(i=0;i3;i+)for(j=i+1;j3;j+)/针对右上角 t=aij;aij=aji;aji=t;for(i=0;i3;i+)for(j=0;j3;j+)printf(%3d,aij);printf(n);return 0;,二维数组举例,#include int main(void)int i,j,t,a33=8,1,6,3,5,7,4,9,2;for(i=0;i3;i+)for(j=0;j3;j+)printf(%3d,aji);printf(n);return 0;,也可以进行形式上的行列互换:,二维
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 利用 数组 处理 数据
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6503796.html