C语言I博客作业06
| C语言程序设计 | 2020计算机3班 |
| 作业要求 | 作业要求 |
| 课程目标 | 熟悉多分支结构switch语句的使用 |
| 作业帮助实现目标的具体方面 | 多次使用不熟练的内容,强化记忆从而达到目标 |
| 参考文献 | C语言程序设计 |
| 学号 | 20209003 |
1.PTA实验作业

从PTA题目集中选出2个你最满意的题目完成.
1.1 计算天数
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
-
1.1.1 实验代码截图


-
1.1.2 数据处理
数据表达:
变量及其类型:
整型变量:y,m,d,i,n,sum。
变量由来:通过题目已知定义。
数据处理:
表达式:y%4==0&&y%100!=0)||y%400==0,i=1,n=1,i<m,i++,n++,i==2,sum=sum+29,i==1||i==3||i==5||i==7||i==8||i==10||i==12,sum=sum+31,i==4||i==6||i==9||i==11,sum=sum+30,sum=sum+28,i==m,sum=sum+d。
流程结构:分支结构和循环结构。
-
1.1.3 造测试数据
| 输入数据 :年\月\日 | 输出数据 :天数 | 说明 |
|---|---|---|
| 2009\ 03\ 02 | 61 | 平年 |
| 2000\ 03 \ 02 | 62 | 闰年 |
-
1.1.4 PTA提交列表及说明

1.部分正确:误将能被400整除写为能被100整除。
2.部分正确:将平年的二月误写成了29天。
1.2 多分支表达-倍数问题
键盘输入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.2.1 实验代码截图

-
1.2.2 数据处理
数据表达:
变量及其类型:
整型变量:A,result。
变量由来:通过题目已知定义。
数据处理:
表达式:A%3==0&&A%5!=0,result=A%5,A%3!=0&&A%5==0,result=A%3,A%3!=0&&A%5!=0,result=A%15。
流程结构:分支结构。
-
1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 18 | 3 | 是3的倍数但不是5的倍数 |
| 20 | 2 | 是5的倍数但不是3的倍数 |
| 7 | 7 | 既不是5的倍数也不是3的倍数 |
| 15 | 无输出 | 既是5的倍数也是3的倍数 |
| -7 | 无输出 | 非正整数 |
-
1.2.4 PTA提交列表及说明

1.编译错误:错写入break,忘记应在有switch的条件下才能使用。
2.部分正确:将printf()写在分支结构的外面,导致强制考虑A不为正整数的可能性。所以应该将其写在每一个分支结构里面。
2.代码互评
-
同学代码截图
- 计算天数
- 同学一

- 同学二

- 同学一
- 计算天数
-
自己代码截图
- 计算天数


- 计算天数
-
不同之处
- 1.同学一用的switch语句,比用if语句的思维难度要更小一点。
- 2.同学二用的switch语句,但是看上去更简洁。对方用的直接是加法,而我用的是循环累加。
3.学习总结
3.1学习进度条
| 周\日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
|---|---|---|---|---|
| 8\11.22-11.28 | 约9小时 | 约220行 | 熟悉多分支结构switch语句的使用 | 分不清何时用等于何时用赋值 |
| 7\11.15-11.21 | 约7小时 | 约200行 | 学习多分支结构、字符型数据类型和逻辑运算符 | 无 |
| 6\11.8-11.14 | 约6小时 | 约95行 | 生成乘方表与阶乘表 | 不理解函数的定义和调用如果将主函数放在前面,第一次出现的double fact(int n)后要加分号 |
| 5\11.1-11.7 | 约8小时 | 约140行 | for语句 | 输出%d与%6.1lf之间不能有空格的原因 |
| 4\10.18-10.24 | 约6小时 | 约105行 | if-else语句 | 不能理解求个位数用n%10,十位数n/10%10等 |
3.2累积代码行和累积博客字数

3.3学习内容总结和感悟
3.3.1学习内容总结

3.3.2学习体会
体会:
- 暂时无法灵活使用switch语句,这次PTA的作业靠直觉只能使用if语句,switch语句还需多加应用练习。有时候还无法判断使用字符型变量的时机。总之,这周还需多加练习,弄清楚switch语句和字符型变量的适用范围。

浙公网安备 33010602011771号