C语言I博客作业08
| 这个作业属于哪个课程 | C语言程序设计II |
| ---- | ---- | ---- |
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/ |
| 这个作标业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11610
|
| 我在这个课程的目标是 | 练习break与continue |
| 这个作业在那个具体方面帮助我实现目标 | 熟练break与continue,练习for语句 |
| 参考文献 | c语言程序设计(第三版) |
| 学号 | 20208950 | |
1.PTA实验作业
1.1显示指定范围内的素数 (10分)
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
输入格式:
输入一个非0的整数。
输出格式:
素数的输出格式为每个素数5列宽、右对齐、每行显示15个。
1.1.1数据处理
数据表达:定义整型变量count,i,n,m,t,把0赋值给count,输入m的值,先用if判断输入值是否符合题目要求,
for与if判断是否为素数,按格式输出
数据处理:表达式:逻辑表达式,赋值表达式,关系表达式
流程结构:定义整型变量count,i,n,m,t,将count赋值,count=0;
输入m的值,判断输入值是否在100内或小于等于2;if(m>541),if(m<=4&&m>0);符合则return 0;
不符合则for循环for(t=2;t<=m;t++);for(i=2;i<=n;i++);
count++累计输出素数个数;
按格式输出;
1.1.2实验代截图
1.1.3造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
568 | OVERFLOW | 输入数据大于100 个素数 |
1 | NO | 输入数据小于2 |
5 | 2 3 5 | 正整数5内的素数 |
1.1.4 PTA提交列表及说明
提交列表说明
1.部分正确:for(t=2;t<=m;t++),for(i=2;i<=n;i++)中2写成1;
2.多种错误:if(count%15==0)中15写成10;if(m<=4&&m>0)中4写成2;
3.答案错误:if(m>541)中541写成100;
1.2幸运彩票 (15分)
彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。
输入格式:
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。
输出格式:
对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.。
1.2.1 数据处理
数据表达:定义三组整型变量a,s,d,f,g,h,i,n,输入n的值;进入for循环,输出asdfgh的值,if判断asd的和是否等于fgh的和
最后输出
数据处理:表达式:算术表达式,关系表达式,
流程结构:定义整型变量a,s,d,f,g,h,i,n;输入n的值;
for循环for(i=1;i<=n;i++)在输入其他六个数的值scanf("%1d%1d%1d%1d%1d%1d",&a,&s,&d,&f,&g,&h);
if判断if(a+s+d==f+g+h),符合条件则输出You are lucky!
不符合条件则输出Wish you good luck.
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
2 233008 123456 | You are lucky! Wish you good luck. | 第一组符合要求,第二组不符合要求 |
1 346788 | Wish you good luck. | 不符合要求 |
1 146191 | You are lucky! | 符合要求 |
1.2.4 PTA提交列表及说明
提交列表说明
1.编译错误:定义变量太多,某个变量写错
2.答案错误:scanf("%1d%1d%1d%1d%1d%1d",&a,&s,&d,&f,&g,&h);%1d写成%d
2.代码互评
同学代码截图
我的代码截图
对比:我选的是一个代码两个同学的做法
1.同学1代码定义的变量少,方便,不容易混,他主要是用两个for循环完成操作
2.同学2和我代码不同之处是他先把0赋值给六位数,然后进行for循环
3.学习总结
3.1 学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周 | 10 | 15 | 简单知识点 | 无 |
第九周 | 12 | 34 | if-else语句 | 无 |
第十周 | 12 | 102 | 循环语句 | 复杂循环语句 |
第十一周 | 13 | 200 | 温度转换表,乘方表阶乘 | 不太熟 |
第十二周 | 12 | 253 | 多分支结构,字符型变量 | 不熟练 |
第十三周 | 12 | 302 | switch-case | 总体还行 |
第十四周 | 10 | 419 | do-while | 复杂的不会 |
第十五周 | 12 | 511 | break与continue | 不太会 |
3.2 累积代码行和博客字数 |
时间 | 字数 | 代码行数 |
---|---|---|
第八周 | 1010 | 15 |
第九周 | 1643 | 34 |
第十周 | 2673 | 102 |
第十一周 | 3566 | 200 |
第十二周 | 3679 | 353 |
第十三周 | 4503 | 456 |
第十四周 | 5421 | 511 |
第十五周 | 7137 | 601 |
3.3 学习内容总结和感悟
3.3.1学习内容总结
3.3.2学习体会
这周学习的break和continue,在课上经过老师的指引觉得这些还可以接受,但是觉得PTA的作业中运用起来很困难
有一些不太会。多查资料多问同学,争取弄懂所有题目。
如何跳出多重循环:
1.使用goto,它可以快速跳出多重循环
2.写成函数return,我这次PTA作业中第一题显示指定范围内素数就用了return,符合条件就直接跳到return;
3.直接修改外层循环条件
4.在外层循环设置判断条件,比如外层flag=0;内层如果符合条件则flag=1;跳出循环
5.在大循环后面判断标志加入break。