资源描述:
《第6章 利用数组处理批量数据YWMppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章利用数组处理批量数据前几章使用的变量都属于基本类型,例如整型、字符型、浮点型数据,这些都是简单的数据类型。对于有些数据,只用简单的数据类型是不够的,难以反映出数据的特点,也难以有效地进行处理。如果有1000名学生,输入每个学生成绩,需要求这1000名学生的平均成绩。doubles1,s2,s3,……,s1000;表示每个学生的成绩。scanf(“%lf”,s1);scanf(“%lf”,s2);scanf(“%lf”,s3);1000个….6.1怎样定义和引用一维数组6.1.1怎样定义一维数组6.1.2怎样引用一维数组元素6.1.3一维数组的初始化6.1.4一维数组
2、程序举例6.1.1怎样定义一维数组一维数组是数组中最简单的要使用数组,必须在程序中先定义数组6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];数组名6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];数组长度6.1.1怎样定义一维数组定义一维数组的一般形式为:类型符数组名[常量表达式];数组名的命名规则和变量名相同如inta[10];10个元素:a[0],a[1],a[2],…,a[9]每个元素的数据类型a[0]a[1]
3、a[2]a[3]…a[7]a[8]a[9]6.1.2怎样引用一维数组元素例6.1对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。解题思路:定义一个长度为10的数组,数组定义为整型要赋的值是从0到9,可以用循环来赋值用循环按下标从大到小输出这10个元素#includeintmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);printf("");return0;}使a[0]~a[9]的值为0~90123456789a[
4、0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]#includeintmain(){inti,a[10];for(i=0;i<=9;i++)a[i]=i;for(i=9;i>=0;i--)printf("%d",a[i]);printf("");return0;}先输出a[9],最后输出a[0]0123456789a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]6.1.3一维数组的初始化在定义数组的同时,给各数组元素赋值inta[10]={0,1,2,3,4,5,6,7,8,9};inta[
5、10]={0,1,2,3,4};相当于inta[10]={0,1,2,3,4,0,0,0,0,0};inta[10]={0,0,0,0,0,0,0,0,0,0};相当于inta[10]={0};inta[5]={1,2,3,4,5};可写为inta[]={1,2,3,4,5};6.1.4一维数组程序举例例6.2用数组处理求Fibonacci数列问题解题思路:例5.8中用简单变量处理的,缺点不能在内存中保存这些数。假如想直接输出数列中第25个数,是很困难的。如果用数组处理,每一个数组元素代表数列中的一个数,依次求出各数并存放在相应的数组元素中#include6、>intmain(){inti;intf[20]={1,1};for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){if(i%5==0)printf(“”);printf(“%12d”,f[i]);}printf("");return0;}例6.3有10个地区的面积,要求对它们按由小到大的顺序排列。解题思路:排序的规律有两种:一种是“升序”,从小到大;另一种是“降序”,从大到小把题目抽象为:“对n个数按升序排序”采用起泡法排序985420895420859420854920854290854209大数沉淀,小数
7、起泡a[0]a[1]a[2]a[3]a[4]a[5]for(i=0;i<5;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}854209584209548209542809542089a[0]a[1]a[2]a[3]a[4]a[5]for(i=0;i<4;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}542089452089425089420589a[0]a[1]a[2]a[3]a[4]a[5]for(i=0;i<3;i++)