C语言I博客作业07
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-1 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-1/homework/11584 |
这个作业的目标 | <使我更加熟练运用函数> |
学号 | <20209086> |
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | < https://www.cnblogs.com/cjrhh/p/14075698.html> |
我在这个课程的目标是 | <使我更加熟练运用函数> |
这个作业在那个具体方面帮助我实现目标 | <分析错误,造测试数据和代码互评 > |
参考文献 | <C语言程序设计,while循环,单重循环运用> |
1.PTA实验作业(20分/题)
从PTA题目集中选出2个你最满意的题目完成以下内容,选择题目难度越大,分值越高,每题20分(每项5分),内容要求如下:
1.17-3 循环-古角猜想 (20分)
日本数学家古角静夫研究自然数时,发现一个有趣现象:“如果是个偶数就除2,如果是奇数就乘以3加1”,经过有限个这样的处理步骤,最后一定能得到1. 任意输入一个自然数,给出得到结果1的运算过程。
1.1.1数据处理
数据表达:用了整型变量n。n表示输入的自然数。
数据处理:用了while语句,if-else语句。while(n!=1){if(n%2==0){printf("%d/2=%d\n",n,n/2);n/=2;}
else{printf("%d3+1=%d\n",n,n3+1);n=n*3+1;}
1.1.2实验代码截图
1.1.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
5 | 5*3+1=16 16/2=8 8/2=4 4/2=2 2/2=1 | 5是奇数,奇数乘以3加1 偶数就除2,最后结果为1 |
3 | 33+1=10 10/2=5 53+1=16 16/2=8 8/2=4 4/2=2 2/2=1 | 3是奇数,奇数乘以3加1 偶数就除2,最后结果为1 |
8 | 8/2=4 4/2=2 2/2=1 | 8是偶数,偶数就除2,偶数再除2,最后结果为1 |
1.1.4 PTA提交列表及说明
1.多种错误:包括运行超时和答案错误;运行超时while循环中的n/=2打错无法结束循环,所以答案错误。
2.编译错误:更改的时候多删个分号。
3.部分正确:printf("%d3+1=%d\n",n,n3+1)因为图方便复制成printf("%d/2=%d\n",n,n/2)没有改过来。
1.2 7-7 单重循环—数鸡蛋。 (10分)
妈妈给小明家新送来 y个鸡蛋。 已知小明家原有鸡蛋的个数x是满足“三个三个的数剩1个,5个5个数剩z个,7个7个数剩3个”的最小数, 请问小明家共有多少个鸡蛋? (设输入为正数,不考虑非法输入)
1.2.1 数据处理
数据表达:整型变量x,y,z
数据处理:用了while语句,if语句while(x<=100){x++;if(x%3= =1&&x%5= =z && x%7==3)
1.2.2 实验代码截图
1.2.3 造测试数据
输入数据 | 输出数据 | 说明 |
---|---|---|
4 3 | 77 | x%3= =1&&x%5= =3&&x%7= =3得出x=73 |
2 4 | 96 | x%3= =1&&x%5= =4&&x%7= =3得出x=94 |
3 5 | Invalid Value! | x%5不能等于5 |
1.2.4 PTA提交列表及说明
1.编译错误:开始一直不太确定x%5==z如何处理之后查了单重循环运用知道可以直接并在if中。
2.编译错误:x%5= =z输入成z= =x%5;
3.答案错误:开始时没有将x%5= =z输入if中。
2.代码互评(5分)
同学代码截图
贺姣代码截图
陈文杰代码截图
自己代码截图
1.我与贺姣同学代码大部分相同但是贺姣同学代码之间还使用了一个if语句使条件更加严谨;
2.陈文杰同学代码和贺姣同学代码相似,但是while中的条件不同,陈文杰的是a>=0,而我的和贺姣的是a!=-1;
3.因为题中明确写道以-1作为输入结束的标志所以a!=-1更加准确;
4.但是这告诉我们while的增长条件不唯一,所以不太确定如何给while定义终止循环条件。
3.学习总结(15分)
3.1 学习进度条(5分)
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
第八周/10.19~10.25 | 20小时 | 20行 | 在屏幕上显示Hello World!markdowm语法 | 无 |
第九周/10.26~11.1 | 25小时 | 320行 | 变量和数据类型,如何在网上提问 | 无法准确定义 |
第十周/11.2~11.8 | 30小时 | 660行 | if-else并列结构,for循环 | 部分格式不太了解 |
第十一周/11.9~11.15 | 33小时 | 870行 | 自定义函数 | 如何正确定义一个函数 |
第十二周/11.16~11.22 | 40小时 | 900行 | 字符型变量char | 字符的输入输出 |
第十三周/11.23~11.29 | 42小时 | 935行 | 多分支结构switch语句的使用 | switch语句的选择 |
第十四周/11.30~12.6 | 39小时 | 879行 | while循环do-while循环运用 | 循环终止条件如何设置,伪代码 |
3.2 累积代码行和博客字数(5分)
3.3 学习内容总结和感悟(5分)
3.3.1 学习内容总结
3.3.2 学习体会
本周学习了while语句和do-while语句,知道了while语句与do-while语句的区别,当循环次数明确时用for语句,;如果循环次数不明确且需先进入循环则用do-while语句。这次pta难度有点大,特别是野王认证,我还是在同学的帮助下才完成,但是我一定会在课后去解决我的一些问题,通过询问同学,上网查寻来解决问题,通过每次的积累,从而进一步完善自己,让我们加油!