问题 | 回答 |
---|---|
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 运用C语言编译完成PTA和博客园作业 |
这个作业在那个具体方面帮助我实现目标 | 完成作业并总结 |
参考文献 | 百度百科 |
1.PTA实验作业
1.1打印九九口诀表
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
11=1
12=2 22=4
13=3 23=6 33=9
14=4 24=8 34=12 44=16
1.1.1数据处理
数据表达:定义整型变量i,j,n
N代表给定的一位正整数
i和j表示乘方表中的数字
数据表达:伪代码
int N;输入整型变量N
int i,j;输入整型变量i.j
scanf("%d",&N);
for(j=1;j<=N;j++)
{
for(i=1;i<=j;i++)
printf("%d*%d=%-4d",i,j,i*j);//输出i,j,i*j
printf("\n");
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 | 11=1 12=2 2*2=4 | 输出到2的口诀表 |
3 | 11=1 12=2 22=4 13=3 23=6 33=9 | 输出到3的口诀表 |
4 | 11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=8 34=12 44=16 | 输出到4的口诀表 |
5 | 11=1 12=2 22=4 13=3 23=6 33=9 14=4 24=8 34=12 44=16 15=5 25=10 35=15 45=20 5*5=25 | 输出到5的口诀表 |
1.1.4 PTA提交列表及说明
1.2 换硬币
1.2.1 数据处理
将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
输入格式:
输入在一行中给出待换的零钱数额x∈(8,100)。
输出格式:
要求按5分、2分和1分硬币的数量依次从大到小的顺序,输出各种换法。每行输出一种换法,格式为:“fen5:5分硬币数量, fen2:2分硬币数量, fen1:1分硬币数量, total:硬币总数量”。最后一行输出“count = 换法个数”。
输入样例:
13
输出样例:
fen5:2, fen2:1, fen1:1, total:4
fen5:1, fen2:3, fen1:2, total:6
fen5:1, fen2:2, fen1:4, total:7
fen5:1, fen2:1, fen1:6, total:8
count = 4
数据表达:定义了整形变量x为总硬币数,b为5分硬币数量,d为2分硬币数量,fen1为1分硬币数量,total为每种换法硬币的个数,count为多少种换法。
数据处理:
定义整型变量x零钱数额,在循环中i储存五分硬币个数,w储存一分硬币个数
定义整型变量a表示最多五分硬币个数减一,b减去五分剩余的钱,c储存二分硬币个数,d减去五分和二分剩下的钱,count储存换法个数并赋值为0
输入待换的零钱数额
x←x-8 /排除第一种算法/
a←x/5 /计算余下的钱能换几个五分硬币/
for(i←a;i>←0;i--) /将a赋值给i,用来储存每次循环的五分硬币个数,并判断是否还有五分硬币/
b←x-5i /减去五分剩余的钱/
c←b/2 /储存二分硬币个数8/
for(w←c;w>←0;w--) /将二分硬币个数赋值给w,并判断是否还剩余二分硬币/
d←x-5i-2w /计算除去二分硬币和五分硬币的/
输出五分硬币,二分硬币,一分硬币,总硬币个数
count++;
end for
end for
输出换法个数
end
---
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10 | fen5:1, fen2:2, fen1:1, total:4fen5:1, fen2:1, fen1:3, total:5 count=2 | 10分钱有2种换法 |
12 | fen5:1, fen2:3, fen1:1, total:5fen5:1, fen2:2, fen1:3, total:6fen5:1, fen2:1, fen1:5, total:7 count = 3 | 12分钱有3种换法 |
8 | fen5:1, fen2:1, fen1:1, | 8分钱有一种换法 |
1.2.4 PTA提交列表及说明
2.代码互评(5分)
同学代码截图
自己代码截图
第一位同学用了2层循环和2个for语句,先在最外面进行5分钱的处理,再进入循环处理2分和1分钱
我是先排除第一种算法,学计算五分硬币个数。然后计算二分硬币个数然后计算一分硬币个数。
第二位同学用了嵌套和3个for语句循环,将5分硬币.2分硬币.1分硬币的个数加起来,最后直接输出结果。
同学使用的变量比较少且通俗易懂,是我需要学习的地方。我的变量多一些。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 7 | 120 | 学会了基本结构 | 无 |
第五周 | 8 | 140 | 学会了scanf和printf | 无 |
第六周 | 10 | 170 | 如何用 MinGW-w64 来编译C程序 | 无 |
第七周 | 17 | 240 | 运用if,else语句完成数学问题 | 不太熟练if-else语句 |
第八周 | 20 | 344 | 运用for循环语句 | 对char的用法还不怎么会 |
第九周 | 23 | 350 | 学习了如何使用自定义函数 | 自定义函数还不太会 |
第十周 | 24 | 410 | 熟悉并掌握多分支结构、字符型数据类型和逻辑运算符结构 | 各个运算符的意思还不太理解 |
第十一周 | 22 | 430 | 熟悉并掌握分支结构switch语句 | 对于&&和||的用法不熟练 |
第十二周 | 29 | 410 | 学会使用while和do-while结构解决问题 | 嵌套语句用不熟练 |
第十三周 | 24 | 455 | 嵌套循环 continue语句和break语句 | 新学的语句用不熟练 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
这周我么学习了break,continue语句,break是直接结束循环,continue是结束本次循环
合理安排时间,临近考试,要多加巩固。目前还没有做到心中有数,所以得更加努力才行。
所谓熟能生巧,以后多做PTA,使复杂的语句变成成简单的语句,这是我目前所缺乏的能力。做一个PTA所花的时间也比较长,思考做法也比较慢,还需多下功夫。