C语言I博客作业03
这个作业属于哪个课程 | https://bbs.csdn.net/forums/csuft_swxy_C?typeId=17327 |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/603005148 |
这个作业的目标 | 在题中发现自己的不足,自学不会的知识 |
学号 | 20218588 |
1. PTA作业
1.1 7-1 计算分段函数[2]
本题目要求计算下列分段函数f(x)的值:
注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留两位小数。
1.1.1 代码截图
1.12 数据处理
数据表达:定义两个float类型的变量x,y。
数据处理:利用if-else语句,对于输入的x分为两种情况进行运算,如果x大于或等于0,y=sqrt(x),如果x小于0,y=pow((x+1),2)+2*x+1/x,最后的输出结果都保留两位小数。
1.1.3 PTA提交列表及说明
没有注意格式,后改正。
1.2 7-2 判断体质完整版
体质指数( BMI)是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。BMI的计算方法如下: 体质指数(BMI) = 体重(kg)/ 身高( m )的平方。
胖瘦程度 | BMI |
---|---|
偏瘦 | BMI < 18.5 |
正常 | 18.5<=BMI < 24 |
偏胖 | 24<= BMI <28 |
肥胖 | 28<=BMI <40 |
极重度肥胖 | BMI >= 40 |
输入格式:
在一行里输入体重 和 身高的值
输出格式:
根据BMI的值,输出表格中的肥胖程度
1.1.1代码截图
1.2.2数据处理
数据表达:定义三个float类型的变量BMI,weight,height
数据处理:利用公式BMI=weight/pow(height,2)计算出BMI,利用if-else if-…-else的语句,将BMI的值分为五种情况对应相应的肥胖程度。
1.2.3PTA提交列表及说明
注意到区间问题,题目就变得简单
1.3 7-3 【简单分支】【–月份天数A–】
现在给定某一个月份,然后要求输出该月份的天数,假设年份都是平年。
输入格式:
输入一个正整数M代表月份,M只可能是[1~12]之间的正整数。
输出格式:
输出月份M的天数,输出数据后需要输出回车换行。
1.3.1代码截图
1.3.2数据处理
数据表达:定义两个int类型的变量month,day
数据处理:利用if-else if-…-else条件语句将月份分为三种情况,输入月份,通过条件判断输出相应的月份
1.3.3PTA列表提交及说明
分清楚不同的月份的天数,即可写出题目
1.4 7-4 前天是哪天
给定公元1000年到公元3000年之间的某一天,请你给出该天的前天是哪一天。
输入格式:
输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。
输出格式:
对每一组输入,在一行中输出日期,格式如"yyyy-mm-dd"。
1.4.1代码截图
1.4.2数据处理
数据表达:定义三个int类型的变量year,month,day
数据处理:利用if-else将天数小于两天和大于两天分开讨论,天数大于两天的,只需将天数-2,而天数小于两天需要分开四种情况讨论
1.前一个月的天数为三十天,day=30+day-2,月份-1
2.输入的月份为三月,如果是闰年,day=29+day-2,不是闰年,day=28+day-2,月份-1
3.输入的月份是一月,则输出的月份必为12月,年份-1
4.输入的月份的前一个月为三十一天,day=31+day-2,月份-1
1.4.3 PTA提交列表及说明
对于闰年的条件一直未说明清楚,导致部分错误,后百度了解闰年的定义后将代码进行改正
1.5 7-5 多分支表达-倍数问题
键盘输入1个正的整数A,如果A是3的倍数但不是5的倍数,则输出A除以5的余数。如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数
输入格式:
1个正整数
输出格式:
如果是3的倍数但不是5的倍数,则输出A除以5的余数。 如果A是5的倍数但是不是3的倍数,则输出A除以3的余数。 如果A既不是5的倍数但也不是3的倍数,输出A除以15的余数。 如果A不是正整数,没有任何输出。
1.5.1代码截图
1.5.2数据处理
数据表达:定义两int类型的变量N,将0赋值给a
数据处理:用if-else语句判断输入的N是否为正整数且能否被15整除,不然无输出。利用if-else if-else if-else语句按照题目要求输出a
1.5.3ATP提交列表及说明
没有考虑到N需要能被15整除的条件,后将代码改正
1.6 7-6 输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
1.6.1代码截图
1.6.2数据处理
数据表达:定义两个int类型的变量,N,1赋值给flag
数据处理:先用if-else语句判断N是否是二十世纪的年份,不是则输出"Invalid year!",是的话进入for循环语句,i的值进入if-else条件语句,输出是闰年的年份,没有闰年flag=0最后跳出循环,若flag=0则输出None(说明从2000到输入的年份之间没有闰年)
1.6.3PTA提交列表及说明
没有明白世纪的定义导致认为2100不是二十一世纪的年份,2000年是二十一世纪的年份,后出现语句未加“;”,粗心了
2. 本章学习总结
2.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学习到的知识点简介 | 目前比较迷茫的问题 |
---|---|---|---|---|
10/18-10/24 | 27小时 | 600 | 函数,一维数组 | 对于数组的运用,一般不习惯用函数使代码简单化 |
10/25-10/31 | 25小时 | 600 | 经常用到的头文件,数组排序,判断素数 | 对于数组的调用 |
2.2 积累代码行和博客字数
2.3 学习感悟
这两周的学习,我学到了函数,及一维数组,和一些头文件的运用,关于素数问题我能看明白,但是关于数组的排序问题总是会有点迷糊,接下来的时间我会去看一些视频去理解它,尝试自己去打出代码。同时我也想自学一下二维数组,数组真的蛮有趣的。
在做题的时候不断地打错代码,会有挫败感甚至有点想放弃,但是不断尝试不断改进,最后打对代码的感觉更棒!还有如果一段代码反复修改都是错的,不如重新再打。关于C语言的书很好,接下来的日子我想把书认真地看完,并且书上的题目特别经典,我也想尝试去解答。