这个作业属于那个课程 | C语言程序设计I |
---|---|
这个作业要求在哪里 | C语言I博客作业07 |
我在这个课程的目标是 | 更进一步学好C语言,熟悉多分支结构、字符型数据类型和逻辑运算符,并且学会switch语句 |
这个作业在那个具体方面帮助我实现目标 | C语言教材书,老师课堂讲的内容,同学的帮助 |
参考文献 | C语言程序设计,百度,《C primer plus》,集美大学灵丽老师 |
1.PTA实验作业
1.1计算天数 (15 分)
本题要求编写程序计算某年某月某日是该年中的第几天。
输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。
输入样例1:
2009/03/02
输出样例1:
61
输入样例2:
2000/03/02
输出样例2:
62
鸣谢湖北汽车工业学院袁科老师补充数据
1.1.1数据处理
数据表达:运用到了整型变量: year, month, day
数据处理:将大月和小月分开,二月单独考虑,进行累加
定义变量 y,m,d,date=0;
if((y%40&&y%100!=0)||y%4000)(闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除)
{if(月份>2){日期加一天}}
switch(月份)
{各月份所对应的相关天数,跳出}
输出(日期是该年中的第几天)
return 0;
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2018/03/05 | 64 | 非闰年,第64天 |
2000/03/02 | 62 | 闰年,第63天 |
2004/05/05 | 126 | 闰年,第126天 |
1.1.4 PTA提交列表及说明
Q1:答案错误
A1:将闰年平年哪一个是29天搞混了
Q2:编译错误
A2:不清楚具体是哪个原因,改动了多个地方
result3:答案正确
1统计学生成绩 (15 分)
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
大于等于90分为A;
小于90且大于等于80为B;
小于80且大于等于70为C;
小于70且大于等于60为D;
小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
1.2.1 数据处理
数据表达:运用了八个整型变量:n,i,score,A,B,C,D,E,score为分数。
数据处理:include<stdio.h>
int n,i,score;
int A←0,B←0,C←0,D←0,E←0;
输入学生人数
if(n>0) /学生人数大于0时/
{
for(i=1;i<=n;i++)
{
scanf("%d",&score);/输入学生成绩/
switch(score10)
{
case 10:A++;break; /大于等于90分/
case 9:A++;break; /大于等于90分/
case 8:B++;break; /小于90且大于等于80/
case 7:C++;break; /小于80且大于等于70/
case 6:D++;break; /小于70且大于等于60/
default:E++;break; /小于60/
}
}
}
printf("%d %d %d %d %d",A,B,C,D,E);
return 0;
1.2.2实验代码截图
1.2.3造数据测试
输入数据 | 输出数据 | 说明 |
---|---|---|
6 23 61 70 80 90 60 | 1 1 1 2 1 | 临界值 |
7 54 92 73 60 65 69 | 1 0 2 3 1 | 题目所给符合 |
1.2.4 PTA提交列表及说明
Q1:答案错误
A1:九事件和十事件均为等级A,
Q2:答案错误
A2:不清楚具体是哪个原因,改动了多个地方
result3:答案正确
2.代码互评
同学的题目代码
我的题目代码
说明比较差距:这位同学的代码与我的风格差距较大,他的代码虽然看上去非常的繁杂,其实比我大代码更加的通俗易懂,但是我还是更加倾向简便,
他的代码貌似是长截图,只是显示了一部分代码,弄了很久目前解决不了,他的代码有十二个case加十二个case,比较长,他的数据表达和我差不多,数据处理不一样
然后他是先考虑平年一个月一个月的累加,再考虑闰年同样一个月一个月的累加,而我的是把大月和小月以及二月分开,几个事件用一个累积表达式,也二月在进行讨论
学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
9.16~9.22 | 5h | 16 | 刚开始了解如何编程 | 编译的单词和字母数字都有哪一些作用,编译整个过程又是如何运行的 |
9.23~10.6 | 28h | 32 | 学会如何运用markdown语法 | 为什么会这么难 |
10.7~10.11 | 40h | 211 | 学会了编程的数学函数,对atp也更熟练了 | 好折磨人 |
第4周/10月10~17 | 两天半 | 183 | 掌握并学会使用for循环语句 | 还有多种循环语句不了解,循环结构和分支结构谁先编 |
10.20-10.26 | 俩天 | 192 | 定义和调用函数,以及如何在一个函数中调用另一函数 | 生成乘方表跟阶乘表这方面的内容还有很多不懂的,觉得完成作业很费力气 |
10.27~11.2 | 两天半 | 220 | 如何进行语句的嵌套,对运算符的等级高低有所了解,熟悉多分支结构、字符型数据类型和逻辑运算符 | do语句和do-whlie语句搞不清 |
11.4~11.10 | 俩天 | 256 | 学会switch语句 | 很多地方不明白,一俩句话讲不清楚 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
我发现这是一场没有终点的旅行,越来越难,越来越难,我的成长跟不上鸭,老师你要不要这么赶
这次的作业写了挺快的,先复制粘贴再修改,这次我们学习分支结构,包括二分支结构和switch语句,发现可以的,挺简单适用