C博客作业--指针
题目:6-3 统计大于等于平均分人数
1. 本题PTA提交列表
2. 设计思路
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
问题:dev上显示平均值为75.39;而且我知道整数除整数等于整数,所以乘了1.0,但不明白为什么还是得不出正确答案
解决方法:定义sum为浮点型变量,因为有一些分数带有小数,如果把sum定义为整型,则会把小数去掉
题目:6-5 判断回文字符串
1. 本题PTA提交列表
2. 设计思路
定义变量i表示字符串首字符的下标,k表示字符串尾字符的下标
while(i<k)
if *(s+i)!=*(s+k) 则 end while
否则i++ k--
end while
if i>=k 输出true
else 输出false
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
问题:出现段错误,
但是不明白为什么指针会出现段错误,因为段错误是数组越界,而我没数组
解决方法:通过观察,结果返回时错误,改正即可
题目:6-2 求出数组中最大数和次最大数
1. 本题PTA提交列表
2. 设计思路
定义变量i,j用于循环,定义变量k存放下标,定义temp存放数值元素;
for i=0 to i=2
把 i 赋值给 k
for j=j+i to j=n-1
if *(a+j)>*(a+k) 则 把 j 赋值给 k
temp=*(a+k); *(a+k)=*(a+i); *(a+i)=temp; 最大元素与下标为 i的元素交换
i++ 重复上述步骤 找出次大值
end for
3.代码截图(注意,截图,截图,截图。不要粘贴博客上。不用用···语法去渲染)
4.本题调试过程碰到问题及PTA提交列表情况说明。
(PTA提交列表中的每个错误详细说明为什么及如何解决。)
这个题和平时我们经常练习的选择排序一样,只是平时的选择是把所有元素按从大到小的顺序排序,而题目只要求我们找出最大值
和次大值,所以就把循环for i=0 to i=n-1变成for i=0 to i=2
二、截图本周题目集的PTA最后排名。(2分)
PTA排名
三、阅读代码(2分)
- 找两篇优秀代码贴图展示,并说明该代码功能是什么,优点是什么?
- 代码可以是自己同学代码,也可以是其他地方找的关于C的代码。
计算去掉最高分与最低分后成绩的平均分
优点在于利用选择排序,把原来杂乱无章的成绩按顺序排序,然后在通过循环控制循环变量的取值范围,去掉首尾成绩,相当于去掉最低和最高分
ip地址转换
优点在于简洁,不用通过判断字符串在0-8,9-16,17-24,25-32的情况,只通过一个变量记录转换次数,通过判断此次数是否能是8的倍数,来进行输出
四、本周学习总结(3分)
结构体定义
错题罗列
指针复习作业的第四题
我写错了第一空,答案应该是函数的调用,即返回sum的值
指针复习作业第五题
当找出x比a[i]大时,结束判断,继续循环,直到x不大于a[i];所以应写break;当找出x所在位置,后面的数都应后移一位,即n=n+1;