文档详情

第7章数组(2).ppt

发布:2018-09-16约5.74千字共17页下载文档
文本预览下载声明
第 七 章 数组 7.1 一维数组 7.2 二维数组 7.3 数组的应用 7.4 字符数组与字符串 7.5 数组作为函数的参数 7.6 程序举例 7.3 数组的应用 1.利用数组求fiboncaci数列的前n项 例7.7 求fiboncaci数列的前20项: f0=1 f1=1 ┆ fi=fi-1+fi-2 (i=2, 3,…n) 将前20项输出到屏幕上,每行五项。 #include stdio.h #include conio.h main() { int i,fib[20]; fib[0]=1; fib[1]=1; for(i=2; i=19;i++) fib[i]= fib[i-1]+ fib[i-2]; printf( Fibonaci Numbers are:\n); 2.利用数组处理批量数据 例7.8 从键盘上输入若干学生(不超过100人)的成绩,计算平均成绩,并输出高于平均分的人数及成绩。输入成绩为负时结束。 分析: 根据题意,可以定义一个有100个元素的一维数组score,先将成绩输入到数组中,并计算平均成绩。然后,将数组中的成绩值一个个与平均值比较,输出高于平均分的成绩。 程序如下: #include stdio.h main() { float score[100],ave,sum=0,x; int i,n=0,count; printf(Input score:); scanf(%f,x); while (x=0n=100) { sum+=x; score[n++]=x; /*输入的成绩保存在数组score中*/ scanf(%f,x); } ave=sum/n; printf(average= %f\n,ave); /*输出平均分*/ /*接上页*/ for (count=0,i=0;in;i++) if (score[i]ave) { printf(%f\n,score[i]); /*输出高于平均分的成绩*/ count++; /*统计高于平均分成绩的人数*/ if (count%5= =0) printf(“\n”); } /*每行输出成绩达5个时换行*/ printf(count=%d \n,count); /*输出高于平均分的人数*/ } 3. 利用数组排序 例7.9 从键盘上输入10个整数,用选择法 将其按由小到大的顺序排列并输出 5 13 3 9 32 22 8 1 23 21 ① 1 13 3 9 32 22 8 5 23 21 ② 1 3 13 9 32 22 8 5 23 21 ③ 1 3 5 9 32 22 8 13 23 21 ④ 1 3 5 8 32 22 9 13 23 21 ⑤ 1 3 5 8 9 22 32 13 23 21 ⑥ 1 3 5 8 9 13 32 22 23 21 ⑦ 1 3 5 8 9 13 21 22 23 32 ⑧ 1 3 5 8 9 13 21 22 23 32 ⑨ 1 3 5 8 9 13 21 22 23 32 #include stdio.h main() {int i,j,t,a[10]; for(i=0;i10;i++) scanf(“%d”,a[i]);/*输入数据到数组*/ 分析: 从程序分析可知: 1.程序使用两重循环来实现排序。 2.外循环控制排序趟数。若数组有N个元素,则共进行N-1趟排序。第一趟,I=0;第二趟,I=1,··· 3.内循环完成在[I,9]的区间内选择最小数。比较次数随趟数增大而减少。 4.在每一趟选择中,当后面元素较小时,马上进行交换。而这种交换是不必要的。 事实上:只要记住
显示全部
相似文档