C语言I博客作业03

这个作业属于哪个课程 <计科三班>
这个作业要求在哪里 <作业要求>
这个作业的目标 提高编程和理解能力并学会总结
学号 20209027

一、PTA实验作业。(15分/题)

1.1 输出华氏-摄氏温度转换表 (15分)

题目内容的描述:输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。
温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。
输入格式:在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。
输出格式:第一行输出:"fahr celsius"接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。若输入的范围不合法,则输出"Invalid."。

1.1.1 实验代码的截图。

1.1.2 数据处理。
数据表达:变量分别是整型变量lower、upper、i和双精度浮点型变量celsius,lower和upper代表华氏温度范围的最低和最高值,i用于循环结构中代替fahr的值进行计算,celsius则是摄氏温度的值。
数据处理:用到了循环结构和分支结构,且利用了温度转换的计算公式:C=5×(F−32)/9这个表达式。

1.1.3 PTA提交列表及说明

Q1:之前一直出现答案错误而且完全没有头绪一直僵硬了一个多钟头,神烦!
A1:在这一个多钟头里反复实验,明明在其他编译环境下输出的和题目要的一摸一样,但就是答案错误,在某一刻突然想到了那个关键的小数点,没错就是计算Celsius的值时表达式中都没有出现小数点,所以一直答案错误,我一加上小数点,答案正确!!!,这是我们编程中常见又致命的一个错误。
Q2:那个条件语句也是神烦!
A2:条件语句这一块我也尝试更改了很多次,不过最后我看到并学习了C语言书里的逻辑运算符,将这一问题轻松化解,nice!

1.2求组合数。

题目内容的描述:本题要求编写程序,根据公式Cnm=m!(n−m)!​n!算出从n个不同元素中取出m个元素(m≤n)的组合数。
建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。
输入格式:输入在一行中给出两个正整数m和n(m≤n),以空格分隔。
输出格式:按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。

1.2.1 实验代码的截图。

1.2.2 数据处理。
数据表达:变量分别是整型变量i,n,m和双精度浮点型变量result,n,m分别为用户输入的两个整数,result表示组合数计算结果。
数据处理:运用了循环语句和自定义函数调用,涉及的计算表达式为n!/m!(m-n)!。

1.2.3 PTA提交列表及说明。

Q1:不太了解自定义函数的运用。
A1:参考并学习了数上的相关知识后将其迎刃而解。
Q2:经常出现编程错误而不知道原因。
A2:因为对自定义函数的太了解和粗心而没有打分号。

1.3.阶梯电价。

题目内容的描述:为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。请编写程序计算电费。
输入格式:输入在一行中给出某用户的月用电量(单位:千瓦时)。
输出格式:在一行中输出该用户应支付的电费(元),结果保留两位小数,格式如:“cost = 应付电费值”;若用电量小于0,则输出"Invalid Value!"。

1.3.1 实验代码的截图。

1.3.2 数据处理。
数据表达:变量分别为整型变量elect和双精度浮点型变量cost,elect代表用户输入的用电量,cost代表电费。
数据处理:运用了if嵌入分支语句,涉及的计算表达式为电费=用电量0.52与电费=500.52+(用电量-50)*0.58。

1.3.3 PTA提交列表及说明。

Q1:为什么经常犯答案错误。
A1:因为计算公式的错误和除法运算的错误使用,应该让除法两边为分数型不然输出答案为零,这是常见错误。

二、阅读代码。(-5分——5分)


我认为这是一段优秀代码,其可学习的地方如下:

  1. 排布井然有序,清晰明了,让人看一眼就能够清楚的明白其用意。
  2. 定义变量的同时将变量赋值,我觉的这值得我学习,而不用另外起一行进行赋值,节省了数据空间。
  3. 循环结构和分支结构的灵活运用,相互穿插,简单明了的将其想要的东西进行表达。
  4. 其中的(double)sum是我从没见过的用法,不过根据我的经验这应该是用来防止整数相除成零的错误,我认为十分便捷且直白值得我学习。
  5. 其最后的printf输出也值得我学习,我一般喜欢吧两个放到一个printf中表达,而这样不仅让排版更加整齐,也方便别人进行解读。

三、学习总结。

3.1 学习进度条。(5分)

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
6/5-6/11 9小时左右 大约432行 输出“Hello World!"及温度转换
7/12-7/18 8小时左右 大约471行 分段函数中的if-else语句和温度转换表 scanf语句的使用
8/19-8/25 10小时左右 大约640行 for循环语句与乘方表和阶乘表的生成 自定义函数的调用
9/25-9/1 8小时左右 大约640行 二分支和多分支结构和if-else及else-if语句还有字符型数据和逻辑运算 字符型数据的灵活运用
10/2-10/8 10小时左右 大约920行 switch语句
3.2 累积代码行和博客字数。(5分)

3.3 学习感悟。(5分)
在这周的学习过程中我学到了很多,对于编程也是越来越熟练了,虽然遇到了很多问题不过还是努力的将其解决掉了,就在写博客的过程中因为要统计博客字数,但因为博客字数太多,无法逐个数,只能大概估算而无法得到准确的答案,所以我想可不可以编写一个代码计算呢?应该很复杂吧,不过我以及有了大致思路,之后有时间我会尝试的。

posted @ 2020-11-08 01:27  我才是路人癸  阅读(681)  评论(6编辑  收藏  举报