欢迎来到天天文库
浏览记录
ID:52509901
大小:563.00 KB
页数:28页
时间:2020-04-09
《任务四(一)简单构造数据类型的应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、任务四简单构造数据类型(p70)1、一维数组2、二维数组及多维数组3、字符数组和字符串一维数组的定义(P70)定义方式:数据类型数组名[常量表达式];合法标识符表示元素个数下标从0开始[]:数组运算符单目运算符优先级(1)左结合不能用()例inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a编译时分配连续内存内存字节数=数组维数*sizeof(元素数据类型)数组名表示内存首地址,是地址常量1一维数组初始化方式在定义数组时,为数组元素赋初值(在编译阶段使之得到初值)inta[5]={1,2,3,4,5};等价于:a[0]=1;a[1]=2;a[2]=3;a[3
2、]=4;a[4]=5;说明:数组不初始化,其元素值为随机数对static数组元素不赋初值,系统会自动赋以0值当全部数组元素赋初值时,可不指定数组长度如inta[5]={6,2,3};等价于:a[0]=6;a[1]=2;a[2]=3;a[3]=0;a[4]=0;如inta[3]={6,2,3,5,1};()staticinta[5];等价于:a[0]=0;a[1]=0;a[2]=0;a[3]=0;a[4]=0;只给部分数组元素赋初值inta[]={1,2,3,4,5,6};编译系统根据初值个数确定数组维数一维数组的初始化(p71)//例1:求学生的总评成绩,现有10个学生,从键盘上输
3、入他们的平均成绩和期末成绩,并求总评成绩=期末*70%+平时成绩*30%。P61案例4-2#includevoidmain(){floata[10],b[10],c[10];inti;for(i=0;i<10;i++)scanf(“%f”,&a[i]);for(i=0;i<10;i++)scanf(“%f”,&b[i]);for(i=0;i<10;i++)c[i]=a[i]*0.7+b[i]*0.3;for(i=0;i<10;i++)printf(“%5.1f”,c[i]);for(i=0;i4、例2:将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8输出。解题思路:(1)只要将原来数组中的值以中间元素为中心交换。(2)交换次数为n/2次。(3)注意:n-1是数组最后一个元素的下标。#defineN10#includevoidmain(){intnum1[N]={0,1,2,3,4,5,6,7,8,9};inti,temp;for(i=0;i5、s");//打印出排好序的数列。for(i=0;ia[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束**例3用冒泡法对10个数排序(p100)例3849657613273097第一趟38496513273076第二趟384913273065第6、三趟3813273049第四趟13273038第五趟132730第六趟4938659776132730初始关键字n=8384976971397972730971376767627301365276530651313494930492738273830381327第七趟例用冒泡法对10个数排序(图解)include”stdio.h”voidmain(){inti,j,temp;inta[10];for(i=0;i<10;i++)scanf("%d,",&a[i]);for(j=0;j<=9;j++){for(i=0;i<10-j;i++)if(a[i]>a[i+1]){temp=a[i7、];a[i]=a[i+1];a[i+1]=temp;}}for(i=1;i<11;i++)printf("%5d,",a[i]);printf("");}排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束例4:用简单选择法
4、例2:将一个数组中的值按逆序重新存放。例如:原来顺序为8,6,5,4,1。要求改为1,4,5,6,8输出。解题思路:(1)只要将原来数组中的值以中间元素为中心交换。(2)交换次数为n/2次。(3)注意:n-1是数组最后一个元素的下标。#defineN10#includevoidmain(){intnum1[N]={0,1,2,3,4,5,6,7,8,9};inti,temp;for(i=0;i5、s");//打印出排好序的数列。for(i=0;ia[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束**例3用冒泡法对10个数排序(p100)例3849657613273097第一趟38496513273076第二趟384913273065第6、三趟3813273049第四趟13273038第五趟132730第六趟4938659776132730初始关键字n=8384976971397972730971376767627301365276530651313494930492738273830381327第七趟例用冒泡法对10个数排序(图解)include”stdio.h”voidmain(){inti,j,temp;inta[10];for(i=0;i<10;i++)scanf("%d,",&a[i]);for(j=0;j<=9;j++){for(i=0;i<10-j;i++)if(a[i]>a[i+1]){temp=a[i7、];a[i]=a[i+1];a[i+1]=temp;}}for(i=1;i<11;i++)printf("%5d,",a[i]);printf("");}排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束例4:用简单选择法
5、s");//打印出排好序的数列。for(i=0;ia[1],则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束**例3用冒泡法对10个数排序(p100)例3849657613273097第一趟38496513273076第二趟384913273065第
6、三趟3813273049第四趟13273038第五趟132730第六趟4938659776132730初始关键字n=8384976971397972730971376767627301365276530651313494930492738273830381327第七趟例用冒泡法对10个数排序(图解)include”stdio.h”voidmain(){inti,j,temp;inta[10];for(i=0;i<10;i++)scanf("%d,",&a[i]);for(j=0;j<=9;j++){for(i=0;i<10-j;i++)if(a[i]>a[i+1]){temp=a[i
7、];a[i]=a[i+1];a[i+1]=temp;}}for(i=1;i<11;i++)printf("%5d,",a[i]);printf("");}排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换—第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换—第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束例4:用简单选择法
此文档下载收益归作者所有