C语言I博客作业08
作业头
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/CST2020-4 |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/CST2020-4/homework/11613 |
| 这个作业的目标 | 努力拿个高分,再接再厉,搞懂不会的知识点 |
| 这个作业在那个具体方面帮助我实现目标 | 循环结构的再次学习,并熟悉break 、 continue的使用,学习使用使用循环的嵌套解决问题。 |
| 参考文献 | B站 百度《C语言程序与设计》 |
| 学号 | 20209043 |
1.PTA实验作业(20分/题)

1.1 幸运彩票 (15分)
彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。
1.1.1数据处理
数据表达: 用整型int定义了n,i,m。用来执行for循环的变量。在定义了sum和count,用来计算三位数字之和,并且进行比较。
数据处理:输入一个六位数,先进行后三位数字之和,在进行前三位数之和,然后进行比较,得出答案。表达式:【while(num>1000){sum+=num%10;num/=10;}】【while(num<1000&&num>0){count+=num%10;num/=10;}】
1.1.2实验代码截图

1.1.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 233008 | You are lucky! | sum=count |
| 123456 | Wish you good luck. | sum !=count |
1.1.4 PTA提交列表及说明

答案正确:一开始就是答案正确,肯定有人会觉得我太厉害了,No!!不是你想象的那样子,第一个代码是我一开始写的,但是我在测试总是出现错误,再次之下请同学来帮忙,他教我写第二个代码,就出现这种情况。
运行超时:在算前三个数字之和的时候,在while()的条件中加了一个【count>1】;
答案错误:测试完全正确,但提交出现答案错误,连个部分正确都不给,我是真的醉了【助教帮忙解一下这个问题,第一个代码!!看能不能解出来】【万分感谢!!,我问的人都不会,真的!!】
1.2 显示指定范围内的素数 (10分)
输入整数m,将所有大于1小于整数m的素数存入所指定的数组中(数组最多只存放100个素数,超过则提示“OVERFLOW”),输出各素数——若输入的m≤2,则提示“NO”,程序终止。注:素数(Prime Number),亦称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
1.2.1 数据处理
数据表达:用整型int 定义count , I , m, n, z;m用于输入数字,count用于计算素数的多少,其他则使用在for中
数据处理:先算出100个素数的位置,进行判断;在进行素数的判断,一行15个换行。
for(z=2;z<=m;z++){
n=sqrt(z);
for(i=2;i<=n;i++)
if(z%i==0)
break;
if(i>n){
printf("%5d",z);
count++;
if(count %15 ==0){
printf("\n");}
}
1.2.2 实验代码截图

1.2.3 造测试数据
| 输入数据 | 输出数据 | 说明 |
|---|---|---|
| 1 | No | 输入的数字小于2 |
| 568 | OVERFLOW | 素数的个数超过100个 |
| 10 | 2 3 5 7 | 在范围之内 |
1.2.4 PTA提交列表及说明

部分正确:
if(count %15 ==0){
printf("\n");}
}
这里少了if需要的括号,运行结果第一行和第二行素数之间相差五行;导致答案部分正确。
答案正确:加了括号之后就对了。
2.代码互评(5分)
同学1代码截图:

-----------分割线-------------
同学2代码截图:

-----------分割线-------------
自己的代码解图:

比较
1.跟同学1差别在,她是使用了一次for循环,将前三位数字的求和巧妙化了,而我使用了两次while循环,没用很好的将前三位数字的和将其计算,在一些方面还得加油。
2.跟第二位同学来比,他将这六位数写成【1%d1%d1%d1%d1%d1%d】,在知道可以这样,我来了一句,牛逼!!如果是这样,那这道题很简单,我们把这题复杂化了。
3.学习总结(15分)
3.1 学习进度条(5分)
| 周/日期 | 这周所花的时间 | 代码行学到的知识点 | 简介目前比较迷惑的问题 |
|---|---|---|---|
| 11/1——11/8 | 15h | how(),sqrt() | 无 |
| 11/9——11/15 | 17h | 函数函数的被动定义 | |
| 11/16——11/22 | 18.5h | 分支结构 | 字节变量的使用 |
| 11/23——11/29 | 14h | switch的分支结构 | 无 |
| 11/30——12/7 | 12h | 熟悉使用while和do-while结构解决问题 | while与其他的套用 |
| 12/8——12/13 | 16h | for循环的嵌套 | 所学习的知识灵活运用 |
3.2 累积代码行和博客字数(5分)

3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结

3.3.2 学习体会
感悟:
1.现在的作业不能像以前那样子了,以前只是一个知识点,学会正确使用,而现在知识点多了,要活学活用,现在是会用和在解题方面要灵活使用语句,尝试多种方法。看是在浪费时间,其实效果在哪里我问不知道。方正在思维方面有好处。
2.临近期末,复习的脚步也近了。
3.吐槽一下:pta在一些方面真的会气或者弄死一个学习代码的好青年。

浙公网安备 33010602011771号