题目6-1 计算两数的和与差
1 设计思路
(1)主要描述题目算法
第一步:阅读题目,引用void sum_diff( float op1, float op2, float psum, float pdiff )
第二步:找到和与差的代表变量,发现不需要再继续加入新变量
第三步:直接代入数据即可
(2)流程图
2.实验代码
3.本题调试过程中遇到的问题及解决办法
错误原因:老是分不清什么时候在函数体中需要重新定义变量
改正方法:找到需要的变量看看是否都已经定义了
题目6-2 拆分实数的整数与小数部分
1.设计思路
(1)主要描述题目算法
第一步:阅读题目,理解大概关系,直接引用void splitfloat( float x, int intpart, float fracpart )
第二步:找到需要的变量,整数 intpart,小数:fracpart
第三步:找到计算整数的方法,使用int类型进行强制转换,用实数x 减去整数得到小数
第四步:编写代码
(2)流程图
2.实验代码
3.本题调试过程中遇到的问题及解决办法
暂时没有遇到问题,注意了上一个题目的问题了
第二次pta 6-1 在数组中查找指定元素
1.设计思路
(1)主要描述题目算法
第一步:通读题目,引用int search( int list[], int n, int x )
第二步:定义一个变量i来遍历数组,如果有存在list[]==x的情况就说明找到了这个元素为了防止多次遍历,此题用i返回的结果,i表示找到了改符合要求的数值,0表示没有找到该数值,只要找到了一个符合条件的数返回i,返回i,然后跳出循环
第三步:如果遍历完所有数组中的数仍然没有找到结果就要输返回-1
(2)流程图
2.实验代码
3.本题调试过程中遇到的问题及解决办法
错误原因:![](https://images2018.cnblogs.com/blog/1342900/201803/1342900-20180318121030741-999554807.png)虽然编程并没有错误,但是这个逻辑完全错误,如果第一个没有找到就会直接跳到else直接返回-1,事实上相当于并没有遍历数组
改正方法:不要写else, else表示每一个if没有实现都要进行else,这样就会导致后面的即使存在也不会找到
第二次pta 6-2找最大值及其下标
1.设计思路
(1)主要描述题目算法
第一步:阅读题目理解大概关系,头脑中存在这个逻辑,引用int fun(int a,int b,int n)
第二步:定义一个变量i利用i遍历数组
第三步:定义最大值max,先令数组的首项位最大值,然后一一用后面的项与其作比较,如果后面的比首项大就将这个较大的项的值赋给max,以此类推,遍历完整个数组,找到最大值及其下标
(2)流程图
2.实验代码
3.本题调试过程中遇到的问题及解决办法
没有错误
学习总结和进度
1.总结两周以来所有pta作业中每个题目所使用的知识点
第一次作业6-1:函数的调用,指针的表示
第一次作业6-2:指针的表示及其使用,强制类型的转换,函数知识
第二次作业6-1:函数的使用,数组在函数中的遍历,确定常量,if语句,for循环,break的使用,指针的使用
第二次作业6-2:函数的使用,指针的使用,(*p的不同作用),函数的传参,for循环,if条件句
2.将pta作业源代码使用git提交到托管平台上
https://github.com/lxh666666/homework-C-
4.记录学习进度
感觉代码打的还是有点少,没有足够的数量,就没有特别熟练,虽然写博客比较费时间,不过好像对问题的理解更加深入了些,掌握了一些技巧,以后应该会快一些吧!