这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业07 |
我在这个课程的目标是 | 熟练运算符的使用顺序、字符的含义,switch语句。 |
这个作业在那个具体方面帮助我实现目标 | 在PTA的练习中,和对知识的自我总结上 |
参考文献 | 集美大学林丽老师、百度文库、C语言程序设计 |
1.PTA实验作业
1.1 题目名1
计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
1.1.1数据处理
{
定义 年 月 日
输入年 月 日;
如果该年年份能被4整除但不能被100整除、或者能被400整除,为闰年
{
选择月份
{
选择月份后,天数就等于此月份以前的月份中的所有天数之和加上输入的“日”
}
}
否则
{
选择月份
{
选择月份后,天数就等于此月份以前的月份中的所有天数之和加上输入的“日”
}
}
输出日期
结束
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2004/04/26 | 117 | 2004为闰年 |
2001/04/26 | 116 | 2001不是闰年,所以少一天 |
2008/09/25 | 269 | 2008为闰年 |
1.1.4 PTA提交列表及说明
* 答案错误:未注意输出位数,导致答案错,后来问同学解决
* 答案错误:case与后面的数字间没打空格,看来错误提示发现的
* 答案错误:单词打错了,看错误提示发现的
2.2题目名2
整数的分类处理
给定 N 个正整数,要求你从中得到下列三种计算结果:
A1 = 能被 3 整除的最大整数
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。
1.1.1数据处理
{
定义A1(A),A2(B),A2(C),正整数个数N,i(用于循环),数据s,余数b等的类型
输入正整数个数N
使用循环语句for(从i=1开始,i的值一直累加到i=N为止)
{
输入数据
余数=输入的数据除以3
选择余数
{
余数为0 :
如果数据为能被 3 整除的最大整数
A=该数据的值
跳出该语句
余数为1:
B=累加的数据的个数;
跳出该语句
余数为2:
将数据的值累加;
将符合该条件数据个数累加;
平均数=数据的值的和/数据个数
跳出该语句
}
}
如果A=-1
{
输出NONE
}
否则
{
输出A的值
}
如果B=0
{
输出NONE
}
否则
{
输出B的值
}
如果s=0并且X=0
{
输出NONE
}
否则
{
输出C的值
}
结束
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5, 5 4 6 2 1 | 6 2 3.5 | 被整除的只有6,符合3k+1的只有1,4 |
4, 6 4 1 8 | 6 2 8.0 | 平均数为浮点型变量 |
6,3 3 3 3 3 3 | 3 NONE NONE | 没有符合3k+1,3k+2的数字 |
1.1.4 PTA提交列表及说明
*格式错误:{位置打错了,看错误提示发现的
*部分正确:没有对C进行赋值,看错误提示发现的
*部分正确:NONE后面没打空格,问同学解决的
2.代码互评
自己代码:
同学代码:
* 同学用了数组,我用的是常规方法
* 同学的case 10:后为空白,而我加了个A++;break; 相比之下同学的要简洁些
自己代码:
同学代码:
* 同学用了数组的方法,而我用的常规方法
* 同学代码中没有case 0 使用了default,而我一直是case语句
3.学习总结
3.1 学习进度条
周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较困惑的问题
----------|---------------------|----------------------------------|--------------------------
第六周|4天|20|用 MinGW-w64 来编译C程序,学习编程计算温度的转化|无
第七周|3天|99|学习用if,else等语句编译程序|无
第八周|2天|75|学习使用循环语句,用for来编译程序|无
第九周|3天|94|学习各种使用函数eg:fact(i)|for循环与while循环的区别
第十周|2天|213|学习使用多种分支结构|对分支结构中for循环有点迷糊不太能理解
第十一周|1天|135|学习使用switch语句|无
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
这周新学习了switch语句,一开始我不是很明白switch语句与if-else语句的关系。后来在百度上查了一下。解释如下:如果纯粹比较数字或字符,建议使用switch,因为它只会在一开始的switch括号中取出变量值一次,然后将这个值与下面所设定的case比较,但如果使用if,每次遇到条件时,都要取出变量值。在随后的PTA练习中我逐渐熟悉了这个语句。在做博客园的总结中,我能更深入的思考学过的知识点,并且提高了自己的总结能力。在打字,markdowm语法的使用也很熟悉,PTA的难度、行数也在逐渐提高,代表着我需要更加努力!