C语言-数组课件.ppt

上传人(卖家):晟晟文业 文档编号:4741782 上传时间:2023-01-06 格式:PPT 页数:74 大小:8.40MB
下载 相关 举报
C语言-数组课件.ppt_第1页
第1页 / 共74页
C语言-数组课件.ppt_第2页
第2页 / 共74页
C语言-数组课件.ppt_第3页
第3页 / 共74页
C语言-数组课件.ppt_第4页
第4页 / 共74页
C语言-数组课件.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、1ppt课件2023-1-62/722023-1-63/722023-1-64/722023-1-65/722023-1-66/722023-1-67/72保存大量保存大量同类型的同类型的相关数据相关数据2023-1-68/72a4a3a2 a1a0数组首地址数组首地址基类型基类型下标从下标从0开始开始2023-1-69/72a4a3a2 a1a02023-1-610/722023-1-611/722023-1-612/72main()int a5=1,2,3,4,5,b5;b=a;解决方法解决方法 方法方法1:1:逐个元素赋值逐个元素赋值 b0=a0;b1=a1;b2=a2;b3=a3;b4

2、=a4;方法方法2:2:通过循环赋值通过循环赋值 int i;for(i=0;i5;i+)bi=ai;原因原因:数组名表示数组的首地址数组名表示数组的首地址,其值不可改变其值不可改变!2023-1-613/722023-1-614/722023-1-615/722023-1-616/722023-1-617/722023-1-618/722023-1-619/722023-1-620/72运行程序可以看到,变量运行程序可以看到,变量c c和和a a的值因数组越界而的值因数组越界而被悄悄破坏了被悄悄破坏了123456078#include#include int main()int a=1,c=

3、2,b5=0,i;printf(%p,%p,%pn,b,&c,&a);for(i=0;i=8;i+)bi=i;printf(%d ,bi);system(pause);printf(nc=%d,a=%d,i=%dn,c,a,i);return 0;92023-1-621/722023-1-622/722023-1-623/722023-1-624/722023-1-625/721 2 34 5 06 0 00 0 0结果:结果:5,0,0【例例】若若int a 3=1,2,3,4,5,6,7,则则a数组的第一维大小是多少?数组的第一维大小是多少?1 2 34 5 67 0 02023-1-62

4、6/722023-1-627/722023-1-628/72short int a23;a0a1a10 a11a12a00 a01a02a00a01a02a10a11a12需知道数组每行列数才能从起始地址开始正确读出数组元素需知道数组每行列数才能从起始地址开始正确读出数组元素2023-1-629/722023-1-630/722023-1-631/722023-1-632/722023-1-633/722023-1-634/722023-1-635/722023-1-636/722023-1-637/72冒泡排序(冒泡排序(BubbleSort)的基本概念是:依次比较相邻的)的基本概念是:依次

5、比较相邻的两个数,将大数放在前面,小数放在后面。即在第一趟:首两个数,将大数放在前面,小数放在后面。即在第一趟:首先比较第先比较第1个和第个和第2个数,将大数放前,小数放后。然后比较个数,将大数放前,小数放后。然后比较第第2个数和第个数和第3个数,将大数放前,小数放后,如此继续,直个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后。至此第一趟结至比较最后两个数,将大数放前,小数放后。至此第一趟结束,将最小的数放到了最后。在第二趟:仍从第一对数开始束,将最小的数放到了最后。在第二趟:仍从第一对数开始比较,将大数放前,小数放后,一直比较到倒数第二个数(比较,将大数放前,

6、小数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最小的),第二趟结束,在倒数第倒数第一的位置上已经是最小的),第二趟结束,在倒数第二的位置上得到一个新的最小数(其实在整个数列中是第二二的位置上得到一个新的最小数(其实在整个数列中是第二小的数)。如此下去,重复以上过程,直至最终完成排序。小的数)。如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是大数往前放,小数往后放,相当由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以称作冒泡排序。于气泡往上升,所以称作冒泡排序。2023-1-638/722023-1-639/722023-1-640/722023-1-6

7、41/72#define N 10#include int main()int numN+1,in,i,j;for(i=0;iN;i+)scanf(%d,&numi);/printf(n 请输入一个要插入的数:请输入一个要插入的数:);scanf(%d,&in);2023-1-642/72 for (i=0;iin)break;for (j=N;ji;j-)numj=numj-1;numi=in;for (i=0;iN+1;i+)printf(%d,numi);printf(n);return 0;2023-1-643/72)3()2(2)1(12121nfffnfnfnnnf0=1 (n=0

8、)2023-1-644/72)3()2(2)1(12121nfffnfnfnnnf0=1 (n=0)2023-1-645/722023-1-646/722023-1-647/722023-1-648/722023-1-649/722023-1-650/722023-1-651/722023-1-652/722023-1-653/722023-1-654/722023-1-655/722023-1-656/722023-1-657/72#include#define N 40void ReadScore(int score,int n);int FindMax(int score,int n);

9、int main()int scoreN,max,n;scanf(%d,&n);ReadScore(score,n);max=FindMax(score,n);printf(The highest score is%dn,max);return 0;2023-1-658/72max(i=0)max(i=2)max(i=3)2023-1-659/722023-1-660/722023-1-661/72k=1k=2k=0k=12023-1-662/72k=3k=4k=3k=42023-1-663/722023-1-664/72#include#define N 40void ReadScore(i

10、nt score,int n);void PrintScore(int score,int n);void DataSort(int score,int n);int main()int scoreN,n;scanf(%d,&n);ReadScore(score,n);DataSort(score,n);printf(“Sorted scores:);PrintScore(score,n);return 0;2023-1-665/72void ReadScore(int score,int n)int i;for(i=0;in;i+)scanf(“%d”,&scorei);void Print

11、Score(int score,int n)int i;for(i=0;in;i+)printf(“%d”,scorei);2023-1-666/72void DataSort(int score,int n)/*选择法选择法*/int i,j,k,temp1;for(i=0;in-1;i+)k=i;for(j=i+1;j scorek)k=j;/*记录最大数下标位置记录最大数下标位置*/if(k!=i)/*若最大数不在下标位置若最大数不在下标位置i*/temp1=scorek;scorek=scorei;scorei=temp1;2023-1-667/722023-1-668/72哈,找到了

12、!哈,找到了!事先不必排序事先不必排序2023-1-669/72哈,找到了!哈,找到了!按升序排序按升序排序2023-1-670/72唉,没找到!唉,没找到!2023-1-671/72找到时返回找到时返回下标位置下标位置找不到时找不到时 返回返回-1-12023-1-672/722023-1-673/72谁能出线谁能出线背景:背景:电视台举办电视台举办“超级学生超级学生”才艺大赛,由于报名人数狂多才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每,所以要先进行分组预赛。按规定,每10名学生为一名学生为一个预赛小组,评委打出分数(个预赛小组,评委打出分数(0100分),各小组第一分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。一名,则可同时进入下一轮。输入:输入:按顺序给出一个小组按顺序给出一个小组10个人的最后得分(个人的最后得分(int)。)。输出:输出:能够出线的学生序号(能够出线的学生序号(09)。)。2023-1-674/72#include int main()int i,s10,max=0;for(i=0;i10;i+)scanf(%d,&si);if(maxsi)max=si;for(i=0;i10;i+)if(max=si)printf(%dn,i);return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言-数组课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|