C语言I作业09
这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | 我的作业 |
我在这个课程的目标是 | 学习循环的嵌套。 |
这个作业在那个具体方面帮助我实现目标 | 学会了用循环嵌套穷举解决一些实际问题。 |
参考文献 | 百度百科 |
-
1.PTA实验作业(20分/题)
1.1 题目名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
1.1.1数据处理
数据表达:定义整型变量count,total,x,i,y,z;x用来接收输入。 数据处理:输入零钱 for (i = (x - 3) / 5; i >= 1; i--) { for (y = (x - 1 - 5 * i) / 2; y >= 1; y--) { z = x - 5 * i - 2 * y; count++; total = i + y + z; if(x==5*i+y*2+z) 输出 i,y,z,total; } } 输出count; return 0; }
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
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 |
硬币面值17 |
20 | fen5:3, fen2:2, fen1:1, total:6 fen5:3, fen2:1, fen1:3, total:7 fen5:2, fen2:4, fen1:2, total:8 fen5:2, fen2:3, fen1:4, total:9 fen5:2, fen2:2, fen1:6, total:10 fen5:2, fen2:1, fen1:8, total:11 fen5:1, fen2:7, fen1:1, total:9 fen5:1, fen2:6, fen1:3, total:10 fen5:1, fen2:5, fen1:5, total:11 fen5:1, fen2:4, fen1:7, total:12 fen5:1, fen2:3, fen1:9, total:13 fen5:1, fen2:2, fen1:11, total:14 fen5:1, fen2:1, fen1:13, total:15 count = 13 |
硬币面值20 |
1.1.4 PTA提交列表及说明
提交列表说明:
- 编译错误:主函数缺少对应令牌。解决:在末尾加上‘}’。
1.2 题目2
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C
,间隔一个空格。
输出格式:
输出由给定字符C
画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1.2.1 数据处理
数据表达:定义了整型 x,字符型 w。
数据处理:{
int x;
char w;
输入宽度与字符
if (x%2==0)/*判断奇偶*/
for (size_t i = 0; i < x / 2; i++) {
for (size_t z = 0; z < x; z++)
输出字符
换行
}
else{
for (size_t i = 0; i < (x + 1) / 2; i++){
for (size_t z = 0; z < x; z++)
输出字符
换行
}
}
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
10 a | aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa aaaaaaaaaa |
方块大小为10 |
5 q | qqqqq qqqqq qqqqq |
组成方块字符为q(输入为奇数) |
8 w | wwwwwwww wwwwwwww wwwwwwww wwwwwwww |
方块大小为8,组成方块字符为w |
1.2.4 PTA提交列表及说明
提交列表说明:
- 部分正确:没考虑输入为奇数的情况。解决:设置判断条件if(x%2==0)进行分类解决奇偶问题。
2.代码互评(5分)
同学代码截图
自己代码截图
不同点:
- 同学利用NUM=N/2.0+0.5;解决出现奇数除二出现0.5的问题。
- 我则是分奇偶判断进行不同运算。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第四周 | 5h | 30 | ||
第五周 | 7h | 50 | ||
第六周 | 10h | 63 | ||
第七周 | 9h | 44 | 学习了if条件语句。 | |
第八周 | 9h | 56 | 学习了for循环,并了解了css。 | |
第九周 | 8h | 153 | 学习了自定义函数。 | 对函数返回值的路径还有疑惑。 |
第十周 | 8h | 142 | 学习了嵌套结构。增加了逻辑语句认识。 | 对字符型的使用不熟练。 |
第十一周 | 9h | 287 | 学习了switch结构,了解了数组 | 对数组的虚拟空间申请不怎么会 |
第十二周 | 15h | 324 | 学习lwhlie do whlie循环 | 对whlie循环条件不清楚 |
第十三周 | 13h | 358 | 学会了循环嵌套 | 对嵌套流程不太清楚 |
3.2 累积代码行和博客字数(5分)
时间 | 博客字数 | 代码行数 |
---|---|---|
第四周 | 347 | 2 |
第五周 | 799 | 32 |
第六周 | 1288 | 162 |
第七周 | 1884 | 322 |
第八周 | 2941 | 372 |
第九周 | 4752 | 425 |
第十周 | 5279 | 567 |
第十一周 | 6113 | 845 |
第十二周 | 7452 | 882 |
第十三周 | 8563 | 1240 |
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
这次我们学习了循环的嵌套结构,来解决一些二维输出问题和穷举问题。总的来说,题目越来越像数学题,数学本身也不好,所以难都也是有那么多的。但也只有肯去学还是能看懂的。