C博客作业--指针

一、PTA实验作业

题目1:求出数组中最大数和次最大数

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

-像这样分别找出最大值和次最大值,再与第一个和第二个交换,就有可能会改变原来次最大值的下标,导致交换时出错,然后我就分开找出值并进行交换,就正确了。

题目2: 使用函数实现字符串部分复制

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

  • 根据提示点加上了一个m>n的判断条件,测试点3对了。再看了一会觉得其他两个测试点也是可以算出来的啊,为什么会错呢。然后想起来没加'\0',加上就对了。

题目3:报数

1. 本题PTA提交列表

2. 设计思路

3.代码截图

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

刚开始没有思路,不知道怎么把已经报完数的人 下一次报数去掉不算,但是又还在数组里,请教了一下同学,自己写了一遍解决了

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

三、阅读代码

报数


这个是pta报数那题的代码,我认为这个代码更加简洁,用要退出的rest[]下标为:上一次退出的人的下标加 m-1 (减去退出的人),其结果取余现有人数,比让退出的人对应数组的数变为0判断下一次是否计入统计 更加方便。直接在数组内部找规律,简化代码。

二分查找法



分别使用了bsearch_1函数,利用指针和移位运算,以及bsearch_2函数,利用数组两种方法进行二分查找。从代码简洁程度上来说,位运算更加节省代码量,从占用内存上,指针更节省内存。且bresearch_2效率也是较高的。利用指针和移位运算 就比学数组时学会的二分查找法更加简洁和高效了。

四、本周学习总结

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

  • 学会指针的基本用法,怎么用指针传参和怎么用指针来循环
  • 结构体定义
    struct student{
    char name[10];
    int num[10];
    int score[3];
    };
    struct student stu;
  • 传参的时候地址对应地址,变量对应变量,形参有的时候要&a,&传变量a的地址
  • 字符串数组一定要加上‘\0’
  • 使用数组或者指针的时候注意范围,下标不能越界!
  • 做作业的时候都是定义一个整型循环变量 i ,通过 i 的改变从而改变数组,上完课后才发现,再定义一个指针型变量*p,让新的指针型变量等于原指针的首地址,再通过指针p的改变(例如:p++)来运用。定义指针的时候指针一定不能没有指向!!否则程序处于危险状态,且无法运行,PTA表示为段错误。

2.罗列本周一些错题。

  • 给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,
    其他字符顺序后移,处理后新字符串的首地址作为函数值返回。

posted on 2017-12-17 22:47  黑白熊熊  阅读(275)  评论(1编辑  收藏  举报

导航