c语言中除字符数组外 只能逐个,C语言程序设计用教程.ppt

C语言程序设计用教程

第4章 数组 书名:C语言程序设计实用教程 ISBN:7-111-16742-2 作者:陈方 出版社:机械工业出版社 本书配有电子课件 实际处理的数据,常常是一批批的,而不止是一个。比如,10个同学的年龄,它们都是整型数据,仍用前面的定义方法,可用下面语句说明: int age0,age1,age2,age3,age4,age5,age6,age7,age8,age9; 这里写了10个age,比较麻烦。C语言提供了数组的表示方法: int age[10]; 数组是具有相同数据类型的变量的集合。各元素可独立地作为一个变量被赋值和使用。数组中每个特定元素都用下标来访问。 数组可以是一维的也可以是多维的。 4.1 一维数组 4.1.1 一维数组的定义 一维数组定义的一般形式为: 类型说明符 数组名[常量表达式]; 例如:  int a[10]; 它表示数组名为a,有10个元素,每个元素都是整型,这10个元素是:     a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9] 说明: (1)数组名定义规则和变量名相同,遵循标识符定义规则。 (2)常量表达式要用方括号“[ ]”括起来,不能用圆括号(下面用法不对: int a(0);)。 (3)常量表达式表示元素的个数,即数组长度。 (4)常量表达式中包括常量和符号常量,不能包含变量。C语言不允许对数组的大小作动态定义。例如,下面这样定义数组是不行的:   int n;   int a[n]; (5)数组元素的下标从0开始,到(常量表达式-1)为止。因此在如上定义的数组中无a[10]元素。 4.1.2 一维数组元素的引用 数组和其他变量一样必须先定义,后使用。C语言规定除字符数组外,只能逐个引用数组元素,而不能一次引用整个数组。 [例4-1] 按顺序给数组的10个元素赋值,然后按逆序输出。 程序如下: main( ) { int i,a[10];   for (i=0;i<=9;i++)    a[i]= i ;    /*顺序给数组元素赋值*/   for (i=9;i<=0;i--)    printf("%d",a[i]);/*逆序输出数组元素的值*/ } 程序运行结果: 9 8 7 6 5 4 3 2 1 0 4.1.3 一维数组的初始化 可以先定义数组,再给它的元素赋值,也可以在定义数组时给它赋值(称为数组的初始化)。对数组元素的初始化可以用以下方法实现: (1)在定义数组时对数组元素赋初值。例如:   int a[10]={0,1,2,3,4,5,6,7,8,9}; 将数组元素的初值依次放在一对花括弧内。上面的数组a经过初始化后得:   a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,   a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9。 (2)可以只给一部分元素赋值。例如:   int a[10]={0,1,2,3,4}; 定义a数组有10个元素,但花括弧只提供5个初值,这表示只给前5个元素赋初值,此时后5个元素值自动赋值为0。 (3)在对全部数组元素赋初值时,可以不指定数组长度。例如:   int a[5]={1,2,3,4,5};可以写成 int a[ ]={1,2,3,4,5}; 在第2种写法中,花括弧中有五个数,系统就会据此自动定义数组a的长度为5。 [例4-2] 用数组来处理求Fibonacci数列问题。 main( ) { int i,f[20]={1,1}; for(i=2;i<20;i++)   f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++)   { if(i%5= =0) printf("\n");/*每行输出5个数据*/     printf("%8d",f[i]);   } } 程序运行结果:    1    1    2    3    5    8    13    21    34    55    89   144   233   377   610   987   1597   2584   4181   6765 [例4-3] 用冒泡法对10个数排序(由小到大)。 冒泡法的思路是:将相邻两个数比较,将小的调到前头。 若有10个数: 7,0,4,8,5,9,6,1,3,2 。先进行第1趟比较,第1次将7和0对调,第2次将第2和第3个数(7和4)对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值