C语言程序设计-第八章优化学生成绩系统-指针讲义.ppt

C语言程序设计-第八章优化学生成绩系统-指针讲义.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计-第八章优化学生成绩系统-指针讲义

【项目要求】 借助于指针对上一章的的学生成绩分析系统进行优化,对某班一门课的成绩进行分析,要求有如下功能: 1.查询全部成绩; 2.查询平均分; 3.查询不及格率; 4.查询最高分; 5.按成绩降序排列; 0.退出。 问题情境及实现 通过前面所学知道,可以通过下标法访问数组元素,数组名代表数组的首地址,即指针,我们亦可通过其对数组元素进行访问。 #define N 100 #include stdio.h void main() { int s[N],n,*p; printf(请输入该班人数); scanf(%d,n); printf(请录入成绩); for(p=s;ps+n;p++) scanf(%d,p); printf(该班的全部成绩是:\n); for(p=s;ps+n;p++) printf(%6d,*p); } 1 指针与字符串(1) 1.1 字符串的表示形式 1 指针与字符串(2) 1.1 字符串的表示形式(续) 1 指针与字符串(3) 1.1 字符串的表示形式(续) 1 指针与字符串(4) 1.2 使用字符串指针变量与字符数组的区别 1 指针与字符串(5) 1.2 使用字符串指针变量与字符数组的区别(续) 1 指针与字符串(6) 1.2 使用字符串指针变量与字符数组的区别(续) 2 指针与函数(1) 2.1 指针变量作为函数参数 2 指针与函数(2) 2.1 指针变量作为函数参数(续) 2 指针与函数(3) 2.1 指针变量作为函数参数(续) 2 指针与函数(4) 2.2 指向函数的指针变量 2 指针与函数(5) 2.2 指向函数的指针变量(续) 2 指针与函数(6) 2.2 指向函数的指针变量(续) 2 指针与函数(7) 2.2 指向函数的指针变量(续) 2 指针与函数(8) 2.2 指向函数的指针变量—函数指针作为函数参数 2 指针与函数(9) 2.2 指向函数的指针变量—返回值为指针的函数 2 指针与函数(10) 2.2 指向函数的指针变量—返回值为指针的函数 3 指针数组 (1) 3.1 指针数组 3 指针数组 (2) 3.1 指针数组(续) 3 指针数组 (3) 3.1 指针数组(续) 3 指针数组(4) 4 指针应用举例(1) 4 指针应用举例(2) 【项目要求】 借助于指针对上一章的的学生成绩分析系统进行优化,对某班一门课的成绩进行分析,要求有如下功能: 1.查询全部成绩; 2.查询平均分; 3.查询不及格率; 4.查询最高分; 5.按成绩降序排列; 0.退出。 问题情境及实现 通过前面所讲可实现本系统的前4个功能,下面借助于指针实现数据的排序。采用简单选择排序方法进行,程序如下: #define N 100 #include stdio.h #include string.h void fselectsort(int *a,int n) { int *p,*q,*pmax,t; for(p=a;pa+n-1;p++) { pmax=p; for(q=p+1;qa+n;q++) if(*pmax*q) pmax=q; if(p!=pmax) {t=*p;*p=*pmax;*pmax=t;} } }? 相关知识:简单选择排序 简单选择排序算法: 对如下关键字(49,38,65,97,76,13,27,49)进行简单选择排序的过程见下图。 树形选择排序 按照锦标赛的思想进行,将n个参赛的选手看成完全二叉树的叶结点,则该完全二叉树有2n-2或2n-1个结点。首先,两两进行比赛(在树中是兄弟的进行,否则轮空,直接进入下一轮),胜出的再兄弟间再两两进行比较,直到产生第1名。 对如下关键字(49,38,65,97,76,13,27,49)进行简单选择排序的过程见下图。 堆排序 堆排序是树形选择排序方法的改进,它使用的辅助空间较少,仅增加一个记录空间进行交换,同时关键字比较的次数和树形选择排序相当。 如以下关键字(49,38,65,97,76,13,27,49)所建立的大头堆和小头堆如下图所示: 建立初始堆 从筛选过程可以看出,所建小头堆是从第4个元素97开始,最后到第1个元素为止。整个筛选过程应该是在数组中进行的,其数组的变化过程见下图。 堆排序 整个堆排序和重建堆的过程也是在数组中进行的其变化过程见下图所示。 按递减序列堆排序的算法: 1 指针与字符串(1) 1.1 字符串的表示形式 1 指针与字符串(2) 1.1 字符串的表示形式(续) 1 指针与字符串(3) 1.1 字符串的表示形式(续) 1 指针与字符串(4) 1.2 使用字符串指针变量与字符数组的区别 1 指针与字符串(5) 1.2 使用字符串

文档评论(0)

441113422 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档