Loading

C语言第一次实验报告

本次报告主要是对第三次实验 计算分段函数,第四次 计算分段函数和循环NEW,第四次 分支+循环 加强版的一个学习总结。

一.

1.实验题目

计算分段函数          计算分段函数和循环NEW          分支+循环 加强版

 

 

普遍题目类型都比较简单,掌握一定的新手编程能力都能解决,但其中一些小瑕疵也需要重点注意。

2.设计思路

    对于实验三,需要掌握最基本的数学基础及对题意的理解。类似于计算分段函数的题型,需要分情况讨论,即有两条分支;再有计算火车时差问题,需要对小时退位这一情况进行考虑;

    对于实验四,在原有分段函数的基础上,涉及到求和这一问题,求和若用原有方法计算量庞大,这是一个循环往复的过程,此时就需要一个循环结构实现求和运算;

    对于实验四加强版,不同于实验三,加强版更倾向于问题的具体化,此时需要同学们有一定的整理概括能力,将问题简单化,不难发现,加强版仅仅靠一个分支判断或一个循环结构是难以实现的,所以需要学会将两者结合,问题才能简单,解题才能更便捷。

3.实现方法

1.分段函数 题无需过多纠结,因为只有分支情况的讨论,所以只需 1 if (条件语句) 2 .... 3 else 4 ..... 就能实现问题的求解,如图

2.火车时差问题,一时可能会转不过弯来,考虑到退位情况比较复杂,所以可以先将小时统一到分钟,再相加减,最终再换回时钟格式;如图

3.加强版的许多问题都不是单一结构就能实现的,这时就需要多重分支语句或循环语句,甚至将所学的条件结构和循环结构有机结合,如下图

for()
{
if()
else
}
switch ()
...

 pta:4-2-9 三个数由小到大输出

鉴于这些前面提到的程序比较简单,就不一一列举了。

二.源程序(可只截取最关键的部分)

接下来这些就是个人觉得比较有价值的题目

这是pta上的关于计算天数的问题,初次看见这个题目,脑海之中就浮现了需要判断Year是否为闰年的思路结构;

然而,接下来就短路了,首先是不同月份30天和31天的累加其次是七月和八月同是31天的判断,之后我就用If()的内嵌循环结构完成代码,如下图;

 

首先代码冗杂,其次在Pta上也报错;提交结果截图如下;

 

重新整理思路,学习了switch语句后有了新思路,将许多判断条件都加入到case中;截图如下;明显语句精简了许多,但还是出了些小错误,一月的测试点更改后成功完成题目。

 

 在老师的提示下,接触了一点点数组知识后,与大佬讨论后,优化解题方案,代码如下;

 

此外,个人觉得较难点的题目是

4-2-6 到底是不是太胖了

 

解题代码截图如下,其中有诸多疑问,求大佬和助教解释解释

三.遇到的问题及解决方法,心得体会

1.思路问题

及时调整思路,与同学老师探讨

2.编译及运行问题

在运行程序时遇见3次下图问题

通过编译的错误是最难发现的,经过反复检查代码,终于发现错在scanf()语句在输变量时少输入&;

体会:拿到一道题目时,不要急于做题,首先要理解题意,然后不断将题干信息转化为编程语言;

   打代码时一定要细心细心再细心!!!

   不会的就多请教同学老师,他们都是大佬!!

     

ps:总结一下这几次实验的一些小知识点,每天进步一点点,小菜鸟会成大菜鸡;

  1.%.nf:小数点表示精确,n表示精确到小数点后n位;

  2.pow(x,y):这是幂函数的表达方式,表示x的y次幂,x,y不一定是一个数也可以用表达式代替

   sqrt(x):这是平方根的表达方式,表示根号x,x也可用表达式代替;

  注意:这些出现时记得在头文件补上#include <math.h> 

  3.%02d:这是一个补位的东西,0表示在变量前补0,2表示补成两位,即5补成05;

暂时就这么多了,这些知识点都是个人理解,如果有错,请大家即使指出,谢谢!

 

不早了,睡觉了,晚安,集大,99周年生日快乐!!

 

posted @ 2017-10-21 01:43  Kingwan  阅读(711)  评论(1编辑  收藏  举报