C语言I博客作业08
1.作业头
这个作业属于哪个课程 | 班级的链接 |
这个作业要求在哪里 | 作业要求链接 |
这个作业的目标 | 掌握break和continue,实践并运用于循环结构 |
学号 | 20208945 |
1.PTA实验作业 | |
1.1 题目名1
作业7-4 一钱生多钱
在日常生活中,我们常常需要将一些大额的人民币换算成零钱,已知我们有许多面值5元,2元和1元的人民币。
编程实现:输入我们需要兑换的金钱数,然后我们用这些面值5元,2元和1元的人民币来兑换,要求每一种面值都至少有1张,然后输出有多少种兑换方式。
1.1.1数据处理
数据表达:定义N为要兑换的金额,a,b,c分别为一元,两元,五元,i,j,k,分别为条件判断的方程系数。
伪代码如下:int a = 1, b = 2, c = 5,N;
int i, j, k;
数据处理:伪代码如下:先进行判断然后按顺序输出
if(N>=8&&N<=100){
for (k = 0; k <= 2; k++)
for (j = 0; j <= 5; j++)
for (i = 0; i <= N; i++)
{
if (i*a + j * b + k * c == N)
{
if(k!=0&&j!=0&&i!=0){printf("five=%d,two=%d,one=%d\n", k, j, i);
}
}
}
}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
13 | five=1,two=1,one=6 five=1,two=2,one=4 five=1,two=3,one=2five=2,two=1,one=1 | 成功输出 |
9 | five=1,two=1,one=2 | 成功输出 |
1.1.4 PTA提交列表及说明
说明:1.部分正确:输出答案的顺序错误,还有镶套语句顺序错误。
2.答案正确:进行了改正。
1.2 题目2
PTA作业7-2 打印九九口诀表
1.2.1 数据处理
数据表达:定义N,a,i,分别表示正整数,a,i两个元素相乘。
伪代码如下:int N,a,i;
数据处理:用for语句循环输出行,进行分行。
伪代码如下:
for(i=1;i<=N;i++){
for(a=1;a<=i;a++){
printf("%d*%d=%-4d", a, i, i*a);
}
printf("\n");
}
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 | 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 | 成功输出正确结果 |
5 | 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 | 成功输出正确结果 |
1.2.4 PTA提交列表及说明
说明:1.部分正确:输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐,没有向左对齐
2.答案正确:改正后正确。
2.代码互评
找2份同学代码,和自己代码比较,建议互评代码尽量找代码风格差异较大。
PTA作业7-5 幸运彩票 彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的
同学代码截图
同学代码截图
自己代码截图
对比说明:同学的代码我看不懂啊,同学代码简单,但是涉及的内容非常广泛啊,各种数据库,各种数组……我的代码简单的判断,用%,,计算各种位数数字相加等,代码中我用//解释了三个部分。
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周10.19-10.25 | 8 | 5 | 如何打开编译器 | 我该怎么学习c语言 |
第九周10.26-11.1 | 10 | 54 | 学会如何提问 | c语言怎么才能学好 |
第十周11.2-11.7 | 48 | 138 | for语句,数据的类型 | 为什么作业这么麻烦 |
第十一周11.8-11.14 | 51 | 256 | for语句的应用,如何自己定义函数 | 怎样去理解题意,自己定义的函数如何符合题意去调用 |
第十二周11/15-11/21 | 49 | 528 | 学习了分支结构,switch语句,以及简单数组定义 | 如何正确的理解题目意思,怎样解读问题 |
第十三周11/22-11/28 | 50 | 656 | 学习了分支结构,switch语句,以及简单一维数组 | 怎样用所学的知识更简单的解决问题 |
第十四周11/29-12/5 | 50 | 656 | 学习了新的循环结构while语句 | 怎样用所学的知识更简单的解决问题 |
第十五周12/5-12/11 | 78 | 1026 | 学习了镶套循环break,continue | 为什么老师布置的作业这么难 |
3.2 累积代码行和博客字数
1.累积代码行:3988
2.博客字数:22418
3.3 学习内容总结和感悟
3.3.1 学习内容总结
3.3.2 学习体会
PTA作业好难啊,为什么作业越来越难,而且都是好多内容我们没学啊,我真的不明白啊, 老师为什么要布置这么难的,没学的内容都要我们自己去查资料,PTA7-3题目那个条件好难读懂啊,这能想到?以键盘输入^Z或遇到文件结束符时结束数据输入。(EOF,为End Of File的缩写,通常在文本的最后存在此字符表示资料结束。在微软的DOS和Windows中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control-Z,代码26)。
在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
档案存取或其它 I/O 功能可能传回等于象征符号值 (巨集) EOF 指示档案结束的情形发生。实际上 EOF 的值通常为 -1,但它依系统有所不同。巨集 EOF会在编译原始码前展开实际值给预处理器。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。)等到讲课的时候又两句就带过了那些没学过的内容,真的很担心考试。继续加油吧,脑袋疼。
课后提问:如何跳出多重循环?
- 使用goto
- 写成函数 return
- 直接修改外层循环条件
- 在外层循环设置判断条件
- 在大循环后面判断标志加入break