C博客作业01--分支、顺序结构

C博客作业01--分支、顺序结构

1.1思维导图

总结本周的学习内容,如下图所示:

1.2 本章学习体会及代码量学习体会

1.2.1 学习体会

因为之前自己提前看过翁恺老师的视频,这周所学的比较轻松。但在课堂上,仍然收获了很多小小的细节,比如驼峰命名法;if-else语句的格式取两位小数时会不会四舍五入等。这些能让我写的代码更容易被其他人读懂,也开阔了自己的思维,慢慢学会多去问一些为什么,多去试试其他的可能性。
还有,可能因为有一段时间(接近半个月)没敲代码,所以一些比如scanf里面的&经常被忘记,以后要多多敲代码啊。

1.2.2 代码累计

2.PTA总分

2.1截图展示


2.2 我的总分:

PTA总分:225分

PTA实验作业

3.1 PTA题目1

请编写程序,根据活动经费和U盘单价预估可购买U盘的最大数量。

3.1.1 算法分析

- 1.需要的变量:经费money、U盘单价price、U盘数量number;
- 2.用double定义经费money和U盘单价price,用int定义U盘数量number;
- 3.输入经费和U盘单价。
- 4.代入表达式:number=money/price+0.0000001。(注意double的精度缺陷)
- 输出最大U盘数量。

3.1.2 代码截图

3.1.3 测试数据

3.1.4 PTA提交列表及说明

  • Q1:为什么只是部分正确,我感觉我写的很对???
  • A1:double本身精度存在缺陷,需要手动补偿。(当时刚提交一次之后就和舍友谈论,试了好几个点之后还是错。然后第二天看到有人满分了,就屁颠屁颠地去求助大佬啦)

3.2 PTA题目2

题目简介:

本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下:
起步里程为3公里,起步费10元;
超起步里程后10公里内,每公里2元;
超过10公里以上的部分加收50%的回空补贴费,即每公里3元;
营运过程中,因路阻及乘客要求临时停车的,按每5分钟2元计收(不足5分钟则不收费)。

3.2.1 算法分析

- 1.定义路程和等待时间。
- 2.输入路程和等待时间
- 3.若路程<=3公里,车费=10+等待时间/5*2;
- 4.若3公里<路程<=10公里,车费=10+2*(路程-3)+等待时间/5*2;;
- 5.若路程>10公里,车费=10+2*(路程-3)+2*0.5*(路程-10)+等待时间/5*2;;
- 6.输出车费。

3.2.2 代码截图

3.2.3 测试数据

3.2.4 PTA提交列表及说明


(不要看提交列表就俩,鬼知道我在Dev-C++上有多绝望!!)

  • Q1:对于题目说的时间问题,刚开始是想先用if语句判断时间是否为0,后来发现根本不行。。头大。
  • A1:后来看到闲着无聊就去看了一下自己之前写的的笔记,看到整数除以整数,结果只取整数,就想到了。
  • Q2:对题目不理解。
  • Q2:先不敲代码,在纸上先解出这个数学题,写成分段函数,就好啦。

3.3 PTA题目3

题目简介

本题要求编写程序计算某年某月某日是该年中的第几天。

3.3.1 算法分析

- 1.定义年、月、日;
- 2.输入年、月、日;
- 3.首先判断年是否为闰年,即该年年份能被4整除且不能被100整除、或者能被400整除。
- 4.若为闰年:
     - 若月为一月,则天数=日;
     - 若月为二月,则天数=日+31;
     - 若月为一月,则天数=日+31+29;
     - 若月为一月,则天数=日+31*2+29;
     - 若月为一月,则天数=日+31*2+29+30;
     - 若月为一月,则天数=日+31*3+29+30;
     - 若月为一月,则天数=日+31*3+29+30*2;
     - 若月为一月,则天数=日+31*4+29+30*2;
     - 若月为一月,则天数=日+31*5+29+30*2;
     - 若月为一月,则天数=日+31*5+29+30*3;
     - 若月为一月,则天数=日+31*6+29+30*3;
     - 若月为一月,则天数=日+31*6+29+30*4;
- 5.若不为闰年:
     - 若月为一月,则天数=日;
     - 若月为二月,则天数=日+31;
     - 若月为一月,则天数=日+31+28;
     - 若月为一月,则天数=日+31*2+28;
     - 若月为一月,则天数=日+31*2+28+30;
     - 若月为一月,则天数=日+31*3+28+30;
     - 若月为一月,则天数=日+31*3+28+30*2;
     - 若月为一月,则天数=日+31*4+28+30*2;
     - 若月为一月,则天数=日+31*5+28+30*2;
     - 若月为一月,则天数=日+31*5+28+30*3;
     - 若月为一月,则天数=日+31*6+28+30*3;
     - 若月为一月,则天数=日+31*6+28+30*4;
- 6.输出天数.

3.3.2 代码截图




(呼,不得不说,这个真的是很长的一串代码。)

3.3.3 测试数据

3.2.4 PTA提交列表及说明


(没错,我又是在Dev-C++上写好了再搬过去的)
Q1:有点纠结输入里面的“/”符号的输入,是可以直接输入,还是再定义两个字符?
A2:老师上课说过,scanf里面的非格式符要原样输出(居然忘了!!)
Q2:这个程序不难,但是我写了很长,而且很大一部分几乎是重复的,有什么办法可以解决?
A2:下面是我在逛博客里面看到严威和林玮璐同学的代码,我觉得思路更清晰,明显比我的简洁!!!
严威同学的代码:

林玮璐同学

4.点评同学博客

1.

2.

3.

4.

5.

posted on 2018-10-10 18:45  杨鸿漾  阅读(243)  评论(9编辑  收藏  举报

levels of contents