资源描述:
《C语言课件:第七章数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章数组7.1一维数组的定义和引用7.2二维数组的定义和引用7.3字符数组7.1一维数组的定义和引用语句形式:类型说明符数组名[常量表达式]说明:数组名定名规则和变量名相同。常量表达式表示数组元素的个数,即数组的长度。如:inta[10];表示a数组有10个元素:a[0],a[1],a[2],,a[9],没有a[10]。注意:数组的下标是从0开始的。1一维数组的定义C不允许对数组进行动态定义。以下作法是错误的。intn;scanf(“%d”,&n);inta[n];2一维数组元素的引用
2、数组必须先定义,然后再使用。C的数组元素只能逐个引用而不能一次引用整个数组。一维数组元素的表示形式为:数组名[下标]下标可以是整型常量或整型表达式。例7.1main(){inti,a[10];for(i=0;i<=9;i++)a[i]=i+1;for(i=9;i>=0;i--)printf(“%2d”,a[i]);}输出结果:109876543213一维数组的初始化赋值语句和输入语句均可使数组中的元素赋初值,但占用运行时间。简捷的方法是在程序运行之前使数组初始化。对数组元素初始化的方法有:1.在
3、定义数组时对数组元素赋以初值如:inta[10]={0,1,2,3,4,5,6,7,8,9};说明:依次赋予数组元素的初值必须用{}括起来。2.可以只给一部分元素赋值如:inta[10]={0,1,2,3,4};3.在C中系统会自动对所定义的数组的每个元素赋初值04.对全部数组元素赋初值时,可以不指定数组长度如:inta[5]={1,2,3,4,5};可以写成:inta[]={1,2,3,4,5};如:inta[10]={0};或inta[10]={0,0,0,0,0,0,0,0,0,0}mai
4、n(){inti,k,r,x,b[16];printf(“Enteranintegerx:”);scanf(“%d”,&x);printf(“%6dbinarynumberis:”,x);k=-1;do{r=x%2;b[++k]=r;x/=2;}while(x!=0);for(i=k;i>=0;i--)printf(“%1d”,b[i]);printf(“”);}例:将一个十进制整数转换成二进制数。将b数组元素逆序输出例7.3用冒泡法将10个数按从小到大排序。冒泡法的思路是:将相邻两个数
5、进行比较,将小的调到前头。若有这样一组数:984520,则按如下图所示进行操作。984520比较交换98比较交换94比较与交换的操作直到数字9调到最后的位置,然后将剩下的5个数84520进行下一轮比较与交换,直至排好序为止。当有n个数时需要作n–1趟这样的搜索,每趟搜索要作n–1次比较。main(){inti,j,t,a[11];printf(“input10numbers:”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“”);for(j=1;
6、j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf(“thesortednumbers:”);for(i=1;i<11;i++)printf(“%d”,a[i]);}7.2二维数组的定义和引用定义形式:类型说明符数组名[常量表达式1][常量表达式2]如:floata[3][4];定义a是一个3x4(3行4列)的数组,即a数组有12个元素。但不得写成:floata[3,4];注意:C
7、允许定义多维数组。二维数组中元素的排列顺序为按行按列。即存放完第1行的元素后再接着存放第2行的元素,依次类推。floata[3][4][5];如:1二维数组的定义2二维数组的引用二维数组元素的表示形式为:数组名[下标1][下标2]如:a[0][0]表示二维数组a中第1行的第1个元素。a[2][3]表示二维数组a中第3行的第4个元素。下标可以是整型常量或整型表达式,但其值不得超过上限3二维数组的初始化二维数组的初始化可用下列方法之一:按行给二维数组赋初值。如:inta[3][4]={{1,2,
8、3,4},{5,6,7,8},{9,10,11,12}};这种赋初值的方法比较直观,一行对一行,不易遗漏,易于检查。顺序按行按列给二维数组赋初值。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};可以对部分元素赋初值。如:inta[3][4]={{1},{5},{9}};给每一行的第一个元素赋值inta[3][4]={{1},{5,6}};赋给第一行的第一个元素和第二行的第1,2个元素inta[3][4]={{1},{},{9}};赋给第一行和第三行的第一个