- 1、本文档共78页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言gx-第05章
第5章 数组 5.1 数组的概念 5.2 一维数组的定义和引用 5.3 二维数组的定义和引用 5.4 用数组名作函数参数 5.5 字符数组 *5.6 C++处理字符串的方法——字符串类与字符串变量 5.1 数组的概念 所谓数组就是一组具有相同数据类型的数据的有序集合。 数组是有序数据的集合。数组中的数据称为数组元素,通过数组名和下标惟一地标识一个数组中的一个元素。 同一数组中的每一个元素都必须属于同一数据类型。一个数组在内存中占一片连续的存储单元。 (1) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的: int a[10]; int a[2*5]; int a[n*2]; //假设前面已定义了n为常变量 5.2.2 引用一维数组的元素 数组必须先定义,然后使用。只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。 数组元素的表示形式为 数组名[下标] 下标可以是整型常量或整型表达式。例如 a[0]= a[5]+ a[7]- a[2*3] 例5.1 数组元素的引用。 #include iostream using namespace std; int main( ) {int i,a[10]; for (i=0;i=9;i++) a[i]=i; for (i=9;i=0;i--) couta[i]″ ″; coutendl; return 0; } 运行结果如下: 9 8 7 6 5 4 3 2 1 0 程序使a[0]~a[9]的值为0~9,然后按逆序输出。 5.2.3 一维数组的初始化 (1) 在定义数组时分别对数组元素赋予初值。例如 int a[10]={0,1,2,3,4,5,6,7,8,9}; (2) 可以只给一部分元素赋值。例如 int a[10]={0,1,2,3,4}; (3) 如果使一个数组中全部元素值为1,可以写成 int a[10]={1,1,1,1,1,1,1,1,1,1}; 不能给数组整体赋初值。 (4) 在对全部数组元素赋初值时,可以不指定数组长度。例如 int a[5]={1,2,3,4,5}; 可以写成 int a[ ]={1,2,3,4,5}; 5.2.4 一维数组程序举例 例5.2 用数组来处理求Fibonacci数列问题。 可以用20个元素代表数列中的20个数,从第3个数开始,可以直接用表达式f[i]=f[i-2]+f[i-1]求出各数。 程序如下: #include iostream #include iomanip using namespace std; int main( ) { int i; int f[20]={1,1}; //f[0]=1,f[1]=1 for(i=2;i20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i20;i++) {if(i%5= =0) coutendl; //每行输出5个数 coutf[i]“ ”; } coutendl; //最后执行一次换行 return 0; } 例5.3 编写程序,用起泡法对10个数排序(按由小到大顺序)。 起泡法的思路是:将相邻两个数比较,将小的调到前头。 可以推知,如果有n个数,则要进行n-1趟比较(和交换)。在第1趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较。 根据以上思路写出程序,本例定义数组长度为10, 设n=10,应该进行9趟比较和交换。 #include iostream using namespace std; int main( ) { int a[10]; int i,j,t; cout″input 10 numbers :″endl; for (i=0;i10;i++) cina[i]; coutendl; for (j=0;j9;j++) //共进行9趟比较 for(i=0;i9-j;i++) //在每趟中要进行(10-j)次两两比较 if (a[i]a[i+1]) //如果前面的数大于后面的数 {t=a[i];a[i]=a[i+
文档评论(0)