C语言I博客作业08
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-2 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-2/homework/11611 |
这个作业的目标 | 用多重循环解决问题,熟悉break,continue的区别和使用 |
学号 | 20208976 |
1.PTA实验作业(20分/题) | |
请再此处列出自己的排名图片, | |
1.1 题目1
7-2 打印九九口诀表 (15分)
本题要求对任意给定的一位正整数N,输出部分口诀表。
1.1.1 数据处理
数据表达:int i,j,N;
数据处理:表达式:i=1;i<=N;i++ j=1;j<=i;j++
流程控制:使用多重循环,先用for循环语句进行行的变化
在用第二重循环进行列的变化
for (i=1;i<=N;i++)
for (j=1;j<=i;j++)
1.1.2 实验代码截图
1.1.3 造测试数据
1.1.4 PTA提交列表及说明
格式错误:错误点:1.第一次将输出变成了printf ("%d*%d=%d\t",j,i,i*j);运行结果没有显示换行,输出一整排。
2.第二次将输出变成了printf (" %d * %d = %-4d",j,i,i*j);
3.第三次将输出变成了printf ("%d*%d=%-4d",i,j,i*j);行列弄反。
解决方案:1.在百度上搜等号右边数字占4位,左对齐是什么意思。
2.当遇到换行适宜采用 printf ("\n");
1.2 题目2
7-5 幸运彩票 (15分)
彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。
1.2.1 数据处理
数据表达:int N,i,a,b,c,d,e,f;
数据处理:表达式:a+b+c==d+e+f
流程结构:1.用for(i=1;i<=N;i++)进行行数的循环变化;
2. 用分支语句来判断是否符合彩票幸运的条件,输出相应的语句。
if (a+b+c==d+e+f) {
printf ("You are lucky!\n");
}
else {
printf ("Wish you good luck.\n");
}
1.2.2 实验代码截图
1.2.3 造测试数据
1.2.4 PTA提交列表及说明
答案错误:错误点:1.当用scanf进行输入的时候用的scanf ("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);导致运行结果一直与输出样例不符合。
解决方案:1.将原先的改为scanf ("%1d%1d%1d%1d%1d%1d",&a,&b,&c,&d,&e,&f); %1d将结果进行标准输出,输入单个数字。
2.代码互评(5分)
同学代码截图1
自己代码截图1
1.我的较显简洁,代码行数较少。
2.该同学将3个彩票数字进行循环,x+=a%10;a/=10进行取余累加,去掉个位。是一种新的思路对我来说。
3.该同学与我用的流程控制基本相同。用的for进行循环,用if分支语句进行判断。
同学代码截图2
自己代码截图2
1.该同学用了数组保存数字,我的略显低级。
2.我的代码比较简洁,行数少。该同学用的方法略显繁琐。
3.初学者看我的比较易懂。
3.学习总结(15分)
3.1 学习进度条(5分)
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
1.学习循环结构,将生活中的问题用自己的所学的知识能够将其解决,很有成就感。
2.感觉自己面对题目格式还不够严谨和严格,需要对这方面的知识进行学习和熟记,不希望自己的格式问题影响题目的解决。
3.对自己的小细节问题需反省,经常忘了加 & ;{}等一些不应该犯的错误。
4.对一些作业仍然有一点陌生感;如数组的运用,需多多加强看书籍和视频。
5.希望下一周面对作业不会处于被动状态,能够更加游刃有余。
6.面对老师提出的跳出多重循环问题的解决方法:
①使用goto
②写成函数 return
③直接修改外层循环条件
④在外层循环设置判断条件
⑤在大循环后面判断标志加入break(资料来源于:https://www.cnblogs.com/oddcat/p/9700277.html )