这个作业属于那个课程 | C语言程序设计II |
---|---|
这个作业要求在哪里 | C语言I作业09 |
我在这个课程的目标是 | 学会continue语句以及嵌套语句 |
这个作业在那个具体方面帮助我实现目标 | 归纳,总结自己的解题错误,进一步了解自己的学习情况 |
参考文献 | 百度 |
1.PTA实验作业
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数据处理
数据表达:
定义了k,i,j分别代表5分硬币,2分硬币和1分硬币的数量
total代表每一行硬币总数量,count代表换法个数,它们都是整形变量
数据处理:
头文件
主函数
{ 定义变量 k, i, j, x, total, count=0;
输入函数("%d", &x);
for(k=x/5; k>0; k--)
for(i=x/2; i>0; i--)
for(j=x; j>0; j--)
if(k5+i2+j==x)
{
输出函数("fen5:%d, fen2:%d, fen1:%d, total:%d换行", k, i, j, k+i+j);
count++;
}
打印函数("count = %d", count);
return 0;
}
1.1.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
9 | fen5:1, fen2:1, fen1:2, total:4 count = 1 | 只有一种换法,5分的一个,2分的一个,1分的2个,一共4个硬币 |
11 | fen5:1, fen2:2, fen1:2, total:5 fen5:1, fen2:1, fen1:4, total:6 count = 2 | 有2种换法1个5分的,2个2分的,2个一分的,一共5个硬币 |
1.1.4 PTA提交列表及说明
提交列表说明:因为这个题目我在DEVC++上面提前运行了,所以答案正确。
1.2跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代 码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1.2.1 数据处理
数据表达:定义了整形变量n,i,j;字符型a
数据处理:
头文件
主函数
{
定义整形变量 n,i,j;
字符型a;
输入函数("%d ",&n);
输入函数("%c",&a);
if(n%2==0) n为基数
for(i=1;i<=n/2;i++)
{
for(j=1;j<=n;j++)
{
printf("%c",a);
}
printf("\n");换行
}
if(n%2!=0) n不是偶数
for(i=1;i<=(n+1)/2;i++)
{
for(j=1;j<=n;j++)
{
printf("%c",a);
}
printf("\n");
}
return 0;
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入样例 | 输出样例 | 说明 |
---|---|---|
2a | aa | 由2个a组成的方块 |
4c | cccc | 由2x4c组成的方块 |
. | cccc | . |
1.2.4 PTA提交列表及说明
编译错误:printf后面有个分号忘记打了;
部分正确:最后输出忘记换行了。
2.代码互评
同学的代码
我的代码
第一份代码与我大体相同,不同的是我是我定义了一个整形变量result用来表示ij
第二份代码是通过if-else来输出空格。
对一同一个题目虽然有不同的解题方法,但是大部分还是相同的。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较困惑的地方 |
---|---|---|---|---|
第六周 | 18h | 120 | 如何用 MinGW-w64 来编译C程序 | |
第七周 | 20h | 160 | 学习了if-else语句 | 运用的还不是特别熟练 |
第八周 | 22h | 180 | 掌握使用for循环语句实现指定次数的循环程序设计 | |
第九周 | 20h | 200 | 学会使用自定义函数 | 不是很了解自定义函数 |
第十周 | 22h | 210 | 学习多分支结构、字符型数据类型和逻辑运算符 | 对于字符型数据类型不怎么明白 |
第十一周 | 20h | 150 | 学习使用switch语句的运用 | 还不是很能很熟悉的运用 |
第十二周 | 24h | 220 | 学习使用while语句 | do-while还不是很熟悉 |
第十三周 | 29h | 300 | 学习使用continue语句和嵌套循环 | 对于一些较难的题目还是不能理解并运用 |
3.2 累积代码行和博客字数
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
本周学习的是break语句和continue语句,还有嵌套循环,我感觉基础的知识好像还不是很牢固,马上期末了,我要多学习一下了,加油,相信自己能行。