C博客作业--指针

Posted l杨发热

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

以上是关于C博客作业--指针的主要内容,如果未能解决你的问题,请参考以下文章

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针

C博客作业--指针