欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    维数组与字符数组.ppt

    • 资源ID:6599570       资源大小:346.14KB        全文页数:20页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    维数组与字符数组.ppt

    第10讲 一维数组与字符数组,请大家利用放假期间及时消化我讲的内容,并举一反三,模仿未讲过的例题多写程序。如果说学习C语言有捷径的话:那就是多读程序,多写程序,解析C程序设计第2章 简单程序设计,2,例:求60个学生的最高分,算法:输入60个学生的成绩依次比较,找出最高分输入最高分。,解析C程序设计第2章 简单程序设计,3,方法一:,#include#define N 60void main()int aN,max;printf(Input%d score:n,N);for(i=0;imax)max=ai;printf(n The maximum score is%d:n,max);,解析C程序设计第2章 简单程序设计,4,方法二:,#include#define N 60void main()int aN,max_i;printf(Input%d score:n,N);for(i=0;iamax_i)max_i=i;/*求最大元素对应的下标*/printf(n The maximum score is%d:n,amax_i);,解析C程序设计第2章 简单程序设计,5,例61对200个学生成绩从大到小排序,算法输入200个成绩排序输入排序结果,解析C程序设计第2章 简单程序设计,6,冒泡法对N个数从大到小排序:,第0趟排序:比较a0和a1,不满足顺序交换,再比较a1和a2,不满足顺序交换,依此类推,直至aN-2和aN-1比较,不满足顺序交换,通过这一趟的两两比较找到第1个最小的数放在aN-1的位置第J趟排序:比较a0和a1,不满足顺序交换,再比较a1和a2,不满足顺序交换,依此类推,直至aN-j-2和aN-j-1比较,不满足顺序交换,通过这一趟的两两比较找到第j+1个最小的数放在aN-j-1的位置共N-1趟,for(j=0;j=N-2;j+)/*第j趟排序*/,/*通过依次比较aI和aI+1,不满足顺序交换*/,for(i=0;i=N-j-2;i+)if(aiai+1)t=ai;ai=ai+1;ai+1=t;,解析C程序设计第2章 简单程序设计,7,#include#define N 200void main()int aN,i,j,t;printf(Input%d score:n,N);for(i=0;iai+1)/*若从小到大排序,改成*/t=ai;ai=ai+1;ai+1=t;printf(n The sorted score:n);for(i=0;i=N-1;i+)if(i%15=0)printf(n);printf(%4d,ai);/*书中P167的源代码改为for(i=0;i=N-j-2;i+)*/,例61完整程序:冒泡法,解析C程序设计第2章 简单程序设计,8,选择法对N个数从大到小排序,第0趟排序:从a0至aN-1,比较找出其中最大数所在的下标k,若k!=0,说明ak比a0大,则交换a0和ak,通过这一趟的比较找到第1个最大的数放在a0的位置第J趟排序:从aj至aN-1,比较找出其中最大数所在的下标k,若k!=j,说明ak比aj大,则交换aj和ak,通过这一趟的比较找到第j+1个最大的数放在aj的位置共N-1趟,for(j=0;j=N-2;j+)/*第j趟排序,通过这一趟排序,找到第j+1大的数存于aj*/,/*从aj至aN,比较找出其中最大数所在的下标k*/*若k!=j,说明ak比aj大,则交换aj和ak*/,k=j;for(i=j+1;iak)k=i;,if(k!=j)t=ak;ak=aj;aj=t;,解析C程序设计第2章 简单程序设计,9,#include#define N 200void main()int aN,i,j,t;printf(Input%d score:n,N);for(i=0;iak)/*若从小到大排序,改成*/k=i;if(k!=j)t=ak;ak=aj;aj=t;printf(n The sorted score:n);for(i=0;i=N-1;i+)if(i%15=0)printf(n);printf(%4d,ai);,例61完整程序:选择法,解析C程序设计第2章 简单程序设计,10,查找算法,顺序查找:按数组下标顺序查找二分法查找(折半查找)我们查字典的时候怎样查找?在已经排好序的情况下可以进行二分查找。过程:先找到查找区域的中点,如果中间比要找的值小,说明要找的值在右半边,反之,在左半边,相等则表示找到。若没有找到,在新的查找区域,继续这样查找,直至所有的区域都找到。,解析C程序设计第2章 简单程序设计,11,二分法程序,#include#define N 200void main()int aN,left,right,mid,x,find_i=-1;low=0;high=n-1;Printf(“please input the number to search:”);scanf(“%d”,解析C程序设计第2章 简单程序设计,12,思考:,当数组里存储的是字符串时该怎样修改前边例题的程序?将前边的n或N一律改成strlen(a)因为字符数组中字符的个数绝不是定义时规定的数组长度,其具体个数要通过上述库函数求得。,解析C程序设计第2章 简单程序设计,13,与字符串相关的库函数,在中定义了若干专门的字符串处理函数strlen:strlen(字符串);返回字符串的实际长度,即不包括0的实际字符个数strcpy:strcpy(目的字符串,源字符串);strcat:strcat(目的字符串,源字符串);strcmp:strcmp(字符串1,字符串2);当出现第一对不相等的字符时,就由这两个字符决定所在字符串的大小返回其ASCII码比较的结果值,作业1:P178还有两个函数,请自学。,解析C程序设计第2章 简单程序设计,14,错误2:if(str1 str2),最容易出现的错误,错误1:str1=str2;,字符串不能直接整体复制!strcpy(str1,str2);/*正确*/,也不能用关系运算符比较大小if(strcmp(str1,str2)0)/*正确*/,写错也不会提示语法错误,为什么?,解析C程序设计第2章 简单程序设计,15,求三个字符串中最大的一个,算法:输入字符串str1,str2,str3比较str1和str2,将最大值赋给strmax再拿strmax和str3进行比较,若str3大,再将str3赋值给strmax。输出strmax,解析C程序设计第2章 简单程序设计,16,#include#include#define N 50main()char str1N,str2N,str3N,strmaxN;printf(“Please enter three strings:n”);gets(str1);gets(str2);gets(str3);gets(max);/*输入三个字符串*/if(strcmp(str1,str2)0)/*求前两个字符串的最大值strmax*/strcpy(strmax,str1);if(strcmp(str3,strmax)0)/*求strmax和str3的最大值*/strcpy(strmax,str3);printf(The max is:);puts(strmax);,程序,解析C程序设计第2章 简单程序设计,17,例67判断回文数,例:123454321是回文数再例:12345321不是回文数算法:,str,解析C程序设计第2章 简单程序设计,18,#include#include void main()int i,j,equal=1;char str20;printf(Input a string:);scanf(%s,str);for(i=0,j=strlen(str)-1;i*/,例67 程序,解析C程序设计第2章 简单程序设计,19,本讲小结,一维数组的相关程序设计求最大值、排序、查找等注意数值数组与字符数组的区别几个用于字符串处理的库函数,字符数组的编程题目是经常考的。下节课讲数组名作函数参数,请提前预习,解析C程序设计第2章 简单程序设计,20,思考题与作业:,思考题:如何将我们写的这些程序分别写成函数?这些函数又将如何调用?作业:用数组实现统计全班学生C语言成绩的总分和平均分。仿照例66的程序实现strlen(),strcat(),strcmp()三个程序的功能,但其中不能用到这三个库函数。自学:P178页另外两个函数的用法。,Have a good time during the holiday!But please not forget to:Review what we have learnedPrepare the 6th chapterHomework submission deadline:may,11,

    注意事项

    本文(维数组与字符数组.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开