C语言 结构体与文件课件.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
链表 什么是链表 节点-构成链表的单元 节点定义 struct student {long num; float score; struct student *next; }; 相关函数 malloc void * malloc(unsigned int size) 例:( struct student*) malloc(sizeof(struct student)) free 链表的相关操作 建立 删除 插入 排序 本周编程训练 13.1 求大数-函数返回值是指针 13.2 取子串-返回子串的指针 13.3评分统计-读文件 13.4 统计单词个数-读文件 13.5 数据查找-结构体数组 13.6求最高成绩和平均成绩-结构体数组与读文件 选做题以及代码参考:链表是数据结构的一个知识点,此处题目只涉及单链表,有余力的同学可以选做。 13.7计算平均成绩和最高成绩-动态单链表 13.7动态单链表代码参考 13.8报数游戏-链表法 13.8报数游戏代码参考 * * * * 第13讲 结构体与文件 上周平台编程训练情况 练习完成情况:19个同学存在未做题或者提交题有错。 平台发帖区:29个问题贴,其中我转帖qq问题的聊天记录8个帖子,复习贴子7个,希望大家去浏览帖子。 复习很重要,查疑补漏,期中考试前的内容是基础 上周平台训练问题 亲密数问题 最大/小值问题 复习问题:注意语法细节 亲密数问题1 int fun(int a) { int s=0,i; for(i=1;ia;i++) if(a%i==0) s=s+i; return s; } #includestdio.h void main() { int n,k,i,j; scanf(%d,k); for(i=1;i=k;i++) for(j=1;j=k;j++) { if((fun(i)==j)(fun(j)==i)ij) { printf(%d,%d\n,i,j);} } } 超过时间限制了,虽然等半天能出来结果 去平台看帖子, 12.4题聊天记录 亲密数问题2 #includestdio.h void main() { int n,m,k,j,s1=0,s2=0; scanf(%d,k); for(n=1;n=k;n++) { for(j=1;jn;j++) if(n%j==0) m=s1+j; for(j=1;jk;j++) if(m%j==0) s2=s2+j; if(s2==mm!=nnm) printf(%d,%d\n,n,m); } } 超过1K无结果啊 去平台看帖子,关于亲密数的错误-来自qq 对于每个n,都需s1=0,s2=0,即重新计算因子和 亲密数问题3 #include stdio.h void main() { int m,n,k,i,a,s; scanf(%d,k); for(m=1;m=k;m++) for(n=1;n=k;n++) { a=0,s=0; for(i=1;im;i++) { if(m%i==0) a=a+i; } for(i=1;in;i++); { if(n%i==0) s=s+i; } if(a==ns==mm!=n) printf(%d,%d\n,m,n); } } 为啥无结果? 去平台看帖子,为什么没有结果 杨培文答疑: 1.算s的那个for后面的分号去了 2.而且要判断m小于n才输出 n的值无需再用循环嵌套,即算完m的因子和a后,直接执行n=a; //给n赋值m的因子和,即满足了n==a 亲密数问题4 #includestdio.h void main() { int m,n,i,k,j,q=0,p=0; scanf(%d\n,k); for(m=1;m=k;m=m+1) { q=0; for(i=1;im;i=i+1) if(m%i==0) q=q+i; } for(n=1;n=k;n=n+1) { p=0; for(j=1;jn;n=n+1) if(n%j==0) p=p+j; } if(m==pn==qm!=n) printf(%d,%d\n,m,n); } 为啥无结果? 去平台看帖子,12.4 思路问题:两个for循环嵌套没能构成穷举 语法细节:scanf(%d\n,k);格式控制中不需要\n,删除即可 分析:你的第一个for循环嵌套,执行完成后,q的值是k的因子和,m值是k+1 你的第二个for循环嵌套,执行完成后,p的值是k的因子和,n值是k+1 也就是说,q与p相等,m与n相等,那么紧随其后的if条件中m!=n肯定不满足,所以不执行输出语句,即无结果。 最大最小值问题: #includestdio.h void main() {int a[

文档评论(0)

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

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

1亿VIP精品文档

相关文档