C语言I博客作业06
问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I博客作业06 |
我在这个课程的目标是 | 熟悉多分支结构、字符型数据类型和逻辑运算符 |
这个作业在那个具体方面帮助我实现目标 | if-else的多次应用,加深印象。 |
参考文献 | 《c语言程序设计》 |
1.PTA实验作业
1.1 计算火车运行时间
本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。
1.1.1数据处理
数据表达:用int定义变量a,b,h,m.类型是整型变量。
数据处理:关系表达式,条件表达式,运用if-else分支结构。
1.1.2实验代码截图
1.1.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
1314 2019 | 07:05 | m>0 |
1300 1900 | 06:00 | m=0 |
0956 2011 | 10:15 | m<0 |
1.1.4 PTA提交列表及说明
1.2.3.部分正确:一开始没读清题意把输入的时间在同一天并且四位数的前两位数字分别不能超过24和60也考虑进去了,所以用if((a/100)<(b/100)&&(b/100)<=24&&(a%100)<=60&&(b%100)<=60)当作执行的条件。后来仔细审题,发现题目以默认输入的值都是正确范围内的。于是后来再次编程时没考虑时间符不符合的问题了。
4.部分正确:在if(m<0)的m与h的关系式中没有考虑分钟需要借位,将原本写的h=h改成h=h-1.
5.编译错误:将关系表达式处理好后没有仔细检查就急忙提交发现少了个“;”。
6.部分正确:一直没找到问题在哪,甚至将m=m+60;改成了m=60+m;哈哈,最后当然还是不对啦。
7.8.第二天上午下课有点时间,又在手机看了遍编写的代码,这一看突然发现问题在6,7行。我一开把它们并起来写成h=(b-a)/100; m=(b-a)%100;所以一直提示部分正确。后来想到这两种情况在输入某些数据中得到的结果不一样,比如输入1240 1830时用我的错误式子得到的h=5,m=90,而正确的式子得到h=5,m=50。恍然大悟,拆开写后再次提交,显示答案正确哈哈。
1.2 统计学生平均成绩与及格人数
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
1.2.1 数据处理
数据表达:用int N,i,a,count数据类型为整型。用double定义average,数据类型为浮点型。
数据处理:运用关系表达式,条件表达式。if-else分支结构。
1.2.2 实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
2 34 45 |
average = 39.5 count = 0 |
全不及格 |
3 44 66 77 |
average = 62.3 count = 2 |
部分及格 |
4 67 78 89 90 |
average = 81.0 count = 4 |
全部及格 |
1.2.4 PTA提交列表及说明
1.编译错误:if(a>=60)被我误写为if(a>60)
2.编译错误:用dev c++编译运行了一遍得到正确答案,并且没有编译错误。一直想了很久,想起之前好像也有过类似情况,在题目要求输出的地方等号两边是有空格要求的,果不其然,一看题目输出格式就明白为什么不能通过了。将所有等号左右两边都输入空格,再次提交答案正确。
2.代码互评
同学代码截图
自己代码截图
1.同学代码都有注释,方便别的同学更易读懂。
2.对于if语句后面的{}我更喜欢放在下一列,这样的代码整体看上去简洁清晰一点。
3.同学定义变量是分批定义的,而我是一次定义完成,我觉得既然变量数据类型一样,一次性定义完可能更快速,方便。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第三周10.9-10.12 | 两天 | 188 | 对代码数据的处理了解,比如类型结构等 | 什么时候用int,double声明变量,逻辑运算符的运用等 |
第四周10.16-10.18 | 一天半 | 190 | 如何用double型数据使用lf%,怎样在程序中用for语句实现循环,可指定循环次数 | 循环体中的关系表达式的正确运用 |
第五周10.23-10.26 | 两天 | 226 | 运算符的优先级顺序,自定义函数的编写,对数据参数的了解 | 具体如何在题目中定义函数,参数又应放在哪里才是正确位置 |
第六周10.30-11.2 | 三天 | 348 | 分支结构应用,逻辑运算符的使用 | 在使用if-else语句时{}的位置与格式,语句一多就搞不清楚了 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
include <stdio.h>
int main()
{
int a, b, max;
printf("输入两个整数:");
scanf("%d %d", &a, &b);
if(a>b) max=a;
else max=b;
printf("%d和%d的较大值是:%d\n", a, b, max);
return 0;
}
这段代码中a>b是需要判断的条件,如果条件成立执行if后面的语句,如果条件不成立执行else后面的语句
总结起来,if else 的结构为:
if(判断条件)
{
语句块1
}
else
{
语句块2
}
3.3.2 学习体会
- PTA的作业中自己写出来部分越来越多,不会再像之前一样写了几次仍然不对后就去问别的同学应该怎么写,而更多的是会自己静下心来琢磨到底哪里出了问题,予以更正,或者用其它方法减少PTA错误率,例如用dev c++编译运行看结果是不是符合,然后再输入到PTA等等,当然实在不会的还是会请教他人。
- 建议上课的时候可以适当少看课本,但上课前一定要先看看课本,不要老师讲到那个问题了你马上在书上找,这样会影响你的注意力, 比如一直看课本,看到了书上的答案但是老师的思路你却没有注意。这可就得不偿失了。
- 一定要多上机,多“敲”代码,很多问题只有在“敲代码”的时候才能发现,才会有更加深刻的体会、领悟和理解。