第七章数组一、一维数组二、二维数组三、字符数组与字符串四、数组程序设计举例第七章目录一、一维数组数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素(数组中的元素是按顺序排列的)。为什么要讲数组呢? 第七章一维数组 a[0] a[1] …a[9] 分配内存 2)在内存分配若干连续空间给数组 a[10]. 1)类型说明符数组名[常量表达式] 例: int a[10]; float b[20],c[15]; 第七章一维数组(1. 数组名遵循标识符命名规则; (2. 常量表达式用方括弧括起来; (3. 常量表达式为数组元素个数,即数组长度或大小;可为常量或符号常量,不能为变量。其值一般从 0开始.(4. 数组类型为数组中每一个元素的类型。(5. 数组必须先定义后使用,只能逐个引用数组元素而不能一次引用整个数组。 3)说明:第七章一维数组 1)数组同变量一样,必须先定义后引用。 2)引用数组元素的方法是: 数组名[下标]可以是整型常量或整型常量表达式其最小值默认为 0. 2、: /*以下是一个典型的错误定义方式!*/ int n; scanf (“%d”,&n); int a[n]; 数组的大小不依赖于程序运行过程中变量的值,即 c不允许对数组的大小作动态定义。: 数组元素引用举例,有定义 int a[10]; /*可以引用元素的从 a[0] 到a[9] */ a[5]=6; a[7]=a[5]++; a[6]=3; a[0]=a[5]+a[7]-a[2 *3]; 1)初始化--在定义数组时对数组元素赋初值; 2)初始化方法:[static ] 数组类型数组名 [数组长度]={ 数组元素值}; static 是静态存储的意思, c规定只有静态存储( Static ) 数组和外部存储( extern )数组才能初始化。①给全部元素赋初值: static int a[5]={0,1,2,3,4}; ②可以只给一部分元素赋初值: static float b[5]={,}; 相当 b[0]= ,b[1]= ,b[2] =0,b[3] =0,b[4] = 0; 3、一维数组的初始化第七章一维数组③在对全部数组元素赋初值时,可以不指定数组长度。数组元素的个数和数组长度一致。如: int a[]={1,2,3}; 第七章一维数组注意: static 数组不进行初始化时,如果是数值类型数组(如整型、实型)默认值为 0;如果是字符型数组默认值为空字符’\0’(ASCII 码为零的字符)。 4、数组的输入输出定义数组输入/ 输入 10个整数,分别按顺序和逆序输出。#include < stdio .h> main() {int I;static int a[10] ; printf ("input 10 numbers:\n") ; for(i=0 ;i<10 ;i++) scanf ("%d" ,&a[i]) ; printf ("\n") ; for(i=0 ;i<=9 ;i++) printf ("%d " ,a[i]) ; printf ("\n") ; for(i=9 ;i>=0 ;i--) printf ("%d " ,a[i]) ; } 程序的运行情况: input 10 numbers: 1 2 3 4 5 6 7 8 9 10 ↙ 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1 利用数组,求斐波拉契数列的前 10项。定义数组计算输出 main( ) {static int a[10]={1 ,1} int i; for(i=2 ;i<10 ;i++) a[i]=a[i-1]+a[i-2] ; for(i=0 ;i<10 ;i++) { printf (”%d”,a[i]) ; printf (“,”);} } #include ”stdio .h”第七章一维数组[算法]:冒泡排序法对应位置 a[1] a[2] a[3] a[4] a[5] a[6] a[7] 第一次 124 45 21 2 9 18 第二次 4 1245 21 2 9 18 第三次 4 12 4521 2 9 18 第四次 4 12 21
C语言学习C7 来自淘豆网m.daumloan.com转载请标明出处.