好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第六章数组.docx

5页
  • 卖家[上传人]:天****步
  • 文档编号:291930835
  • 上传时间:2022-05-13
  • 文档格式:DOCX
  • 文档大小:17.70KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 本文格式为Word版,下载可任意编辑第六章 数组 C语言讲度――第六章 数组 第六章 数组 前面讲的简朴类型变量只含一个成员数组是一种构造类型(称为数组元素),数组类型的变量也简称数组,它是由固定数目的同类型成员(称为数组元素)组成的构造类型变量构造类型的最低一级成员务必是简朴类型,它可以宛如一个简朴类型的变量一样,被赋值或展现在表达式中 C的构造类型有:数组、布局和联合 6.1 数组的说明 6.1.1 数组的说明 1.说明区分符 数组名[[常量表达式]][=初值表],?; 2.说明: (1)说明区分符可以是存储类型区分符(auto,extern, static)、类型区分符(int,char,float等)和类型限制符(const, volatile)之一或它们的组合,存储类型区分符说明数组变量的存储类型、类型区分符说明数组元素的类型 (2)数组名是一个标识符 (3)外层[ ]是一维数组的标志,内层[ ]表示可选 (4)常量表达式的值务必是正整数,它是数组的长度(或大小)说明,即说明数组含有的元素数目 (5)数组元素在数组中有确定的次序关系,C中数组元素从0开头编号。

      (6)定义性说明时务必给出长度说明,引用性说明或参数类型说明时不需要长度,但[ ] 不能省 (7)“=初值表”是可选的,它显式地说明数组的初值,引用性说明时不能说明初值 下面是一些数组说明的例子 Int x[5]; 定义x是含有5个int元素的数组(或称x是含有5个元素的int数组),其元素依次表示为x[0],x[1],x[2],x[3],x[4]假设说明在函数外,那么x是外部数组;假设说明在函数体内,那么x为自动数组,由于没有给出初值说明,因此,假设x是外部数组,那么全体元素的初值均为0,假设x是自动数组,那么其元素的值不确定 Float a[30]; 定义a是含有30个元素的float数组,其元素依次为:a[0],a[1],?,a[29],共30个 Double va[maxval]; Val是含有maxval个元素的double数组(maxval是已定义的符号常量) 数且说明可以和其它同类型对象在一个说明语句中说明例如: float x,a[50],b[100]; char c,str[100],buf[300]; (8)静态数组说明务必给出static类型区分符,如 static char line[200];假设说明在函数外,那么为外部静态数组,假设在块内,那么为局部静 1 C语言讲度――第六章 数组 态数组。

      数组长度说明可以含有运算符的表达式形式,表达式的值务必为正整数,且不能含有变量或未定义的标识符 如: #define SIZE 100 char text[SIZE*2+1]; 而下面定义是错误的: int n; char name[n]; 由于C语言不允许定义动态数组,编译时数组的大小务必是已知的且其大小在程序执行过程中是固定不变的 6.1.2 数组引用 数组的引用有两种形式: 一是引用数组的元素,例如: int x[5],那么x[0],x[1],…,[4]是对数组x的5个元素的引用 二是引用数组名一般数组的输入、输出、赋值和根本运算都务必对数组的元素逐个举行数组名可以用作函数调用的参数(实参),输入输出字符串,给指针变量赋值等 数组各元素之间是按依次排列的它们对应的存储单元一个紧接一个,每个元素在数组中的位置即元素编号称为元素的下标,每个元素用数组名和各自的下标两片面表示称为数组元素的引用引用形式如下: 数组名 [下标表达式] 下标表达式(简称下标)可以为任意整型表达式,包括整型常量、变量、含有运算符的整型表达式,甚至是值为整数的函数调用。

      下标表达式的值应在元素编号的取值范围内(在C语言中,下标不作超界检查),对于长度为n的数组,下标表达式的取值为0,1,2,…,n-1,C中数组的编号规定从0开头,对数组最低一级元素的引用称为下标变量,其性质等同于类型简朴变量 如 int x[10],i; x[5]=3+2; i=x[0]+x[3]; 例1 计算并输出全班30个学生C语言程序设计课程的平均劳绩以及每个人的劳绩与平均劳绩之差 #include “stdio.h” #define numbers 30 int main(void) { int i; float x[numbers],sum,average; sum=0; printf(“input %d scores:\\n”,numbers); for (i=0;iv[mid]) top=mid+1; else return (mid); } return –1; } 例4:Shell排序函数 分析:将n个数放在一维数且中,开头时,被分成两段,把数组后一段的每个元素和前一段相隔n/2的元素举行对比,假设后者小于前者,那么交换两个元素的值;然后将对比间隔逐次减小一半,当对比间隔减小到0时,整个算法终止,排序完成。

      Void shellsort(int r[],int n) { int gap,i,j,temp; for (gap=n/2;gap>0;gap/=2) for(i=gap;i=0j-=gap) {temp=v[j]; v[j]=v[j+gap]; v[j+gap]=temp; } 5 — 5 —。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.