C博客作业--指针

一、PTA实验作业

题目1:统计大于等于平均分人数

1. 本题PTA提交列表

2. 设计思路


定义形参*s存放s的首地址,n存放人数m的值,*aver存放平均分aver的地址
    定义i控制循环,count用来统计高于等于平均分的学生人数
	定义浮点型指针*p让p=s存放数组s的首地址
	
	for i=0 to n {
		aver累加p指针指向的单元格内的值统计出所以学生成绩总分 
	
	} 
	
	aver除以人数n算出平均分
	
	p=s将p指针重新指向s数组第一个地址
	
	for i=0 to n {
		如果指针p指向单元格内的数据大于平均分aver则count自增
		 
	} 
	
	返回count的值 


3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

刚刚开始直接拿s指针来做递增,导致做完统计总分的那个循环后就不知道s的首地址在哪了 解决办法:重新定义一个指针p让p=s,然后用p来做自增,这样就可以不改变s指向的地址,从而知道首地址在哪了。

题2:过滤字符串只保留串中的字母字符

1. 本题PTA提交列表

2. 设计思路


定义函数名为fun的无返回型函数,定义字符型指针*p接受字符串str的首地址
  定义i控制变量 max存放最大ASCII码值的下标 
  
  for i=0 to p[i]!='\0' {
  	当i=0时max=0
	如果有p[i]的ASCII码值大于p[max] 的ASCII码值 则max=i记录下标 
  }
  
  定义一个temp作为换位置的桥梁
  temp=p[max] 
  
  for i=max to 0 {
  	把p[i]的值换为p[i-1]//逐个往后推一位 
  }
  
  p[0]=temp 

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 刚刚开始不知道ASCII码值如何比较 解决办法:使用强制类型转换比较大小,不知道还有没有其他办法,想学习一下。

题目3:输出月份英文名

1. 本题PTA提交列表

2. 设计思路

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 部分错误 解决办法:八月份的英文打错了....
  • 刚刚开始是把十二个月的英文名存在一个字符串内,用指针递增的办法,但是最后没能实现 解决办法:想到之前用过switch的分支法就用这个来实现了,但是还是希望能看到有同学用存在字符串内的办法,让我学习学习。
  • 虽然pta对了,但是我还是想问一下这堆警告是什么

二、截图本周题目集的PTA最后排名。

三、阅读代码

1.

这是彭希的第八题,做法简洁明了,直接把t字符串的从第t+m-1个单元赋给s字符串就行了,为了比较我贴一下我之前的做法吧,而且这是没有全过的做法

2.

该题要求实现循环报数,如何依次把报到m的人除去组内,如何最后输出每个人出去的顺序数。这题我一开始是没有思路的,看了志湖同学的代码才有思路,在循环内放如三个分支判断,比较形象的呈现报数的过程。

四、本周学习总结

1.自己总结本周学习内容。

  • 指针:不懂函数调用时函数名前加个号和不加号的区别
  • 结构体:感觉很方便,把一些数据归类在一个结构体内,像是处理一个人的数据,很神奇
  • 库函数:很方便,但是目前还不太会用,也记不住名字和功能,应该多使用多熟记

2.罗列本周一些错题。

(1)

这题主要不会toupper函数的用法,现在知道了toupper函数可以把小写字母转换为大写字母 另外tolower可以把大写字母转换为小写字母

(2)

这题没读懂题意,题目要求的是把数字类型的字符转换成整型相加返回,所以sum=sum+*s-‘0’既转换了类型又累加了数字

posted @ 2017-12-17 13:53  Littleweii  阅读(242)  评论(0编辑  收藏  举报