资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第6章章 数组及其应用数组及其应用6.1 数组的概念数组的概念 下标变量的集合。 一维数组、二维数组、和多维数组以及字符串数组及在计算机内存中排列方法。6.2 数组的定义及初始化数组的定义及初始化(一维和多维一维和多维)static int a10, b200=1,2,3,4,5;static float d56=1,2,3,4,5,0,2,3;int k333; 说明:1. static 定义为静态数组,地址固定; auto 定义动态数组,不用就撤消。2. static 可以初始化数组,不给数值时,元素自动置0。3. 数组名的起法与变量名字起法相同。4. 数组名字与变量名字不能相同。5. 数组元素从0 开始。(A0)6. 数组又称做数组变量。7. 数组中的一个单元又称做一个元素,一个元素可以放一个数据。8. 注意定义数组时的下标和使用数组时下标的区别。9. 引用数组或给数组赋值时,下标不能越界使用。否则可能引起计算机系统崩溃。10. 不用static 定义数组时,自动为auto(局部)11. 无论是局部变量还是局部数组变量,注意未初始化时,其中的值是任意的。6.3 数组的输入(赋值)、输出和应用数组的输入(赋值)、输出和应用6.3.1 一维数组的应用例:将一维数组反序放入另一个一维数组。#include void main() int a10,b10; int i; for(i=0;i10;i+)ai=i*2-1; b10-i-1=ai;for(i=0;i10;i+) coutAi=ai; cout Bi=biendl; 例:将10个数字反序输出。#include void main() int a10=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i10;i+) couta9-iendl; 例:将某一企业12个月的月产值、年总产值和年均产值放入一个一维数组。#include void main() int a15=0,1,2,3,4,5,6,7,8,9,10,11,12,0; int i; for(i=1;i13;i+) a13+=ai; a14=a13/12; for(i=1;i15;i+) coutaiendl;例:求数列的前20项:0,1,1,2,4,7,#include void main() static int i, a20=0,1; for(i=2;i20;i+) ai=ai-1+ai-2; a14=a13/12; for(i=0;i15;i+) coutaiendl;例:从n个评委的打分中找最高分。#include #define N 10void main() int aN, i,max=0; for(i=0;iai; for(i=0;iN;i+) if (maxai) max=ai; for(i=1;iN;i+) coutaiendl; coutmax;例:将n个数字排序,并输出排序后的结果和排序前的数值。例:统计n个1 到 m-1 中每个数出现的个数。#include #include #include #define M 10void main()static int n,aM,i,k; cinn; srand(time(NULL); for(i=0;in;i+) k= rand()/32787.*M; ak=ak+1; for(i=0;iM;i+) coutaistr2, 其值为正整数 str1=str2, 其值为0 str1str2, 其值为负整数 strlen(str) 测串 str长度 strlwr(str) 将大写字母转换为小写字母 strupr(str) 将小写字母转换为大写字母说明: 1. 其中str为字符串或者字符数组.2. 字符串的比较规则 相同为相等 (“ok” =“ok”) 部分相同,长串为大 (“work”Beijing”6.4.4 字符串数组的应用字符串数组的应用例: 将存入字符数组的英文单词输出。例:将 n个国家名字(单词)排序#include #include void main()int k,j;char name20=iraq,iran,india,nepal,norway,peru,poland,spain,sudan,tunis;char d20;for(k=0;k9;k+) for(j=k+1;j0) strcpy(d,namej); strcpy(namej,namek); strcpy(namek,d); for(k=0;k10;k+) coutnameka;for(k=0;ak;k+) if (ak=l | ak=L) s+=1;coutaendl;coutsendl; 6.5 数组元素作为函数参数数组元素作为函数参数例:求5以内的平方,存于一维数组#include #include void main()int a52,k;int s(int x);for(k=0;k5;k+)ak0=k+1;ak1=s(ak0);coutak0setw(8)ak1endl;int s(int x)return (x*x);6.6 数组作为函数的参数数组作为函数的参数例: 计算四个季度产值和(结果放在每行的第5元素)。#include void RowSum(int a 5, int nrow) for (int i = 0; i nrow; i+)for(int j = 0; j 4; j+)ai4 += aij; void main(void)static int Table35 = 1,2,3,4,2,3,4,5,3,4,5,6; /调用子函数,计算各行和RowSum(Table,3); /输出数组元素for (int i = 0; i 3; i+) for (int j = 0; j 5; j+) cout Tableij ; cout endl; 说明:1.整个数组作为实参时,只写数组名即可 如 /A行2.函数定义中必须给出列下标,行下标可以不给出。3.函数中使用数组仍要进行类型说明。4.数组作为实参和形参,有一方改变了其元素值,双方的数组的元素值均改变。5.使用数组做实参和形参,可以函数程序中带回多个值。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号