| 这个作业属于哪个课程 | <C语言程序设计II> |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
| 参考文献 | C语言程序与设计(第三版) |
| 这个作业的目标 | <提高编程能力,进一步了解代码和总结本周学习过程> |
| 学号 | <20208968> |
1.PTA实验作业

1.1一钱生多钱
在日常生活中,我们常常需要将一些大额的人民币换算成零钱,已知我们有许多面值5元,2元和1元的人民币。
编程实现:输入我们需要兑换的金钱数,然后我们用这些面值5元,2元和1元的人民币来兑换,要求每一种面值都至少有1张,然后输出有多少种兑换方式。
1.1.1实验代码截图

1.1.2 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 13 | five=1,two=1,one=6 five=1,two=2,one=4 five=1,two=3,one=2 five=2,two=1,one=1 | 答案正确 |
| 8 | five=1,two=1,one=1 | 答案正确 |
1.1.3数据处理
数据表达:用了i,j,n三个变量,其中n由scanf输入,ij分别为for循环的初始值。
数据处理:运用了for的多循环结构表达式:sum=n-5*i-2*j
for(i=1;i<=n/5;i++);for(j=1;j<=50;j++)循环了四次
printf("five=%d,two=%d,one=%d\n",i,j,sum);
1.1.4PTA提交列表及说明

部分正确:if(sum>=1)情况打错导致只有一个结果,其余结果不显示。
答案正确:经过调试,将代码改正,最终正确。
1.2幸运彩票

1.2.1数据处理
数据表达:用了a,b,c,d,e,f,g,h几个变量,其中a由scanf输入,b为for循环的初始值,c,d,e,f,g,h为循环中的输入值。
数据处理:表达式:c+d+e==f+g+h
流程结构:1.用for(i=1;i<=N;i++)进行行数的循环变化;
2. 用分支语句来判断是否符合彩票幸运的条件,输出相应的语句。
if (c+d+e==f+g+h) {
printf ("You are lucky!\n");
}
else {
printf ("Wish you good luck.\n");
}
1.2.2实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 2 233008 123456 | You are lucky! Wish you good luck. | 编译正确 |
| 2 152430 235442 | Wish you good luck. You are lucky! | 编译正确 |
1.2.4PTA提交列表及说明

答案错误:for循环中的c,d,e,f,g,h几个变量输出写出了%d,需要用%1d为整数输入。
答案正确:通过查阅别人的代码自己磋磨,改正错误,代码正确。
2.代码互评
同学代码:

我的代码:

不同点:
1.我的较显简洁,代码行数较少。
2.该同学将3个彩票数字进行循环,x+=a%10;a/=10进行取余累加,去掉个位。是一种新的思路对我来说。
3.该同学与我用的流程控制基本相同。用的for进行循环,用if分支语句进行判断。
同学代码:

我的代码:

不同点:
1.该同学用了数组保存数字
2.我的代码比较简洁,行数少。该同学用的方法略显繁琐。
3.1 学习进度条

3.2累积代码行和博客字数

3.3.1学习内容总结

3.3.2 学习体会
1.感觉自己面对题目格式还不够严谨和严格,需要对这方面的知识进行学习和熟记,不希望自己的格式问题影响题目的解决。
2.PTA上的题越来越难了,感觉压力都点大啊。
3.无法很好的理解break、continue的使用,需要多加练习该类型的题目。
如何跳出多重循环:
1.使用goto语句
2.使用continue
浙公网安备 33010602011771号