问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | C语言I博客作业09 |
我在这个课程的目标是 | 完全独立编写一个小游戏程序,并能正常运行。 |
这个作业在那个具体方面帮助我实现目标 | break,contiune语句的学习。 |
参考文献 | 《C语言程序设计》 《C Primer Plus》 |
1.PTA实验作业
1.1 打印九九口诀表
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
1.1.1数据处理
数据表达:用int定义整型变量i,j,n。
数据处理:运用算术表达式,赋值表达式,for的嵌套。
int定义变量,i,j,输入数值n;
scnaf输入n;
for(i赋值为一;条件;i自增)
{
for(j=1;条件;j自增)
{
printf(输出i*j,并注意输出格式要求)
}
printf(换行)
}
返回零
1.1.2实验代码截图
1.1.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
2 | 1 * 1=1 1 * 2=2 2 * 2=4 |
2 |
4 | 1 * 1=1 1 * 2=2 2 * 2=4 1 * 3=3 2 * 3=6 3 * 3=9 1 * 4=4 2 * 4=8 3 * 4=12 4 * 4=16 |
4 |
6 | 1 * 1=1 1 * 2=2 2 * 2=4 1 * 3=3 2 * 3=6 3 * 3=9 1 * 4=4 2 * 4=8 3 * 4=12 4 * 4=16 1 * 5=5 2 * 5=10 3 * 5=15 4 * 5=20 5 * 5=25 1 * 6=6 2 * 6=12 3 * 6=18 4 * 6=24 5 * 6=30 6 * 6=36 |
6 |
1.1.4 PTA提交列表及说明
1.答案错误:i,j应该赋值为一而不是零。
2.答案错误:忘记输出要求等号右边数字占4位、左对齐。
3.多种错误:换行要求。
1.2 换硬币
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
1.2.1 数据处理
数据表达:用int定义整型变量,x,a,b,c,d,i,j,count并赋值为零。
数据处理:关系表达式,赋值表达式,条件表达式,算术表达式运用for语句和for的嵌套。
int定义变量x,a,b,c,d,i,j,count;
scanf输出变量x;
x算术表达式;
a算术表达式;
for(i初始状态;条件;i自减)
{
b算术表达式;
c算术表达式;
for(j初始状态;条件;j自减)
{
d算术表达式;
输出(分钱情况);
count计数;
}
}
输出(count);
返回零;
1.2.2 实验代码截图
1.2.3 造测试数据
输入 | 输出 | 说明 |
---|---|---|
12 | fen5:1,fen2:3,fen1:1,total:5 fen5:1,fen2:2,fen1:3,total:6 fen5:1,fen2:1,fen1:5,total:7 count = 3 |
小于15 |
15 | fen5:2,fen2:2,fen1:1,total:5 fen5:2,fen2:1,fen1:3,total:6 fen5:1,fen2:4,fen1:2,total:7 fen5:1,fen2:3,fen1:4,total:8 fen5:1,fen2:2,fen1:6,total:9 fen5:1,fen2:1,fen1:8,total:10 count = 6 |
等于15 |
17 | fen5:2,fen2:3,fen1:1,total:6 fen5:2,fen2:2,fen1:3,total:7 fen5:2,fen2:1,fen1:5,total:8 fen5:1,fen2:5,fen1:2,total:8 fen5:1,fen2:4,fen1:4,total:9 fen5:1,fen2:3,fen1:6,total:10 fen5:1,fen2:2,fen1:8,total:11 fen5:1,fen2:1,fen1:10,total:12 count = 8 |
大于15 |
1.2.4 PTA提交列表及说明
1.答案错误:count应该赋值为零
2.答案错误:输出中,输出的变量i,j的计数中忘记加一。少计了一个数。
3.答案错误:关于b,d的表达式错误。
4.答案错误:输出之间要空格
5.答案错误:输出的等号两边要空格
2.代码互评
同学代码截图
自己代码截图
1.同学代码用到了for与if语句的嵌套,比我的代码看起来更简便一些,但我感觉我的代码理解起来更容易一点。
2.同学代码有适当的注释,方便他人阅读。
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语句时{}的位置与格式,语句一多就搞不清楚了 |
第七周11.5-11.8 | 两天半 | 300 | switch语句作为分支结构应用 | 伪代码到底该如何编写,写的详细和正规代码没什么两样,写的粗略思路又不够清晰 |
第八周11.13-11.15 | 两天半 | 300 | 使用while和do-while结构解决问题 | 对于不同情况下for循环语句和while循环语句如何选择使答题更简便 |
第九周11.20-11.22 | 两天半 | 311 | 使用break语句和continue语句 | 在一起用,有时会混淆两个概念,还不太熟悉它们的用法。 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
-
break语句的功能是跳出正在执行的条件语句或循环语句。它可以出现在switch语句中,也可以出现在循环语句中。
continue语句只是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判断。 -
continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。
所以,再次强调:continue 不能在 switch 中使用,除非 switch 在循环体中。此时 continue 表示的也是结束循环体的本次循环,跟 switch 也没有关系。