循环
一,PTA实验报告
题目一:PTA 7-27计算两个数的最大公约数和最小公倍数。
1.设计思路:两个数的最大公约数可以使用辗转相除法,先用i和j把两个数保存下来,再使用个循环把两个数的最大公约数求出来,用较大数除去较小数,再求余数,再用较小数除去第一个余数得到第二个余数,如此反复,知道余数变成0,最后的被除数既是最大公约数。
最小公倍数即是两数之积除去最大公约数。
2.本题pta提交列表
3.本题代码截屏
4.本题调试中遇到的问题
1.不能理解辗转相除法出现了以下情况
原因:x,y的位置反掉了,导致y不会出现等于0的情况,所以是个死循环。
题目二:pta7-16 小于m的最大十个素数
1.设计思路:首先,先输入一个数n,要有一个循环找到小于它的十个素数,素数只能被一和本身整除,所以还需要一个循环来产生1到n之内的j被n除。从而判断n是否是素数。所以要有个循环不断产生小于n的整数。
2.本题pta提交列表
3.本题代码截屏
4.本题调试过程
原因:i是不断减小的,而j是不断增加的,而在这个代码里我用的是j--,所以实现不了找素数,并且答案错误。
题目三:pta7-7计算阶乘和
1.设计思路:先求出每个数的阶乘,再把这些数的阶乘相加。一个数的阶乘是从1到它自身的总乘积。即用一个循环让产生从一到这个数的整数进行相乘产生该数的阶乘,再用一个循环把这些阶乘相加。
2.本题提交列表
3.本题代码截屏
4.本题调试过程
问题1:阶乘出现的值比实际值小,经过检查发现是j<=i,而不是j<i.
问题2:在第二个for内多加了个大括号,导致数值变大。
二.截图pta本周的最后排名
三.同学代码结对互评
互评同学名称:黄月浩
我的代码
这一题是统计素数并求和。
我的代码先判断是否为素数,然后如果判断后不是是素数的话,继续执行下一个数,黄月浩的代码也是先判读素数,但是她判断素数的方法和我不一样,也比我更加简洁,方便。她用if(flag)执行循环,很有效。
比较起来我的代码更长一点,我更喜欢黄月浩的代码,更简洁还能很好实现效果。
四.本周学习总结
1.在很多地方运用到了for循环和while循环。
2.明白了while和for循环的区别,理解了两者的不同,在有明确结束条件的时候选择for循环更加简洁,能把多个语句放到一个括号内,while循环在循环次数不限的时候比较有效。
3.对switch语句的运用不够多,在以后的学习中要多加尝试。
4.对语句的结束和开始掌握的不大好。
5.对考试结果不大满意,平时打代码不大主动,自己修改自己的代码比较困难。希望自己在以后的学习中更加勤奋,更加耐心。把以前不懂的知识点弄明白,不清楚的搞懂。
数组
一.PTA实验作业
一.pta7-1数组元素循环右移问题。
1.设计思路
该题是一组元素的循环右移,该题右移了两次,我先用一个循环让它循环两次,在用一个数组存储输入的n个数,再将数组的最后一个数保存下来。
再用一个循环让数组内的数都往右移了一位,把最后一个数放到了a【0】的位置。然后再使用一个循环输出改变后的数组元素。
2.本题的pta提交列表
3.本题调试过程中遇到的问题
在这里数组是a【10】,范围太小,导致了段错误。应该修改成a【100】.
在count++多加了一个大括号,使它成了循环里面的语句,所以导致了格式错误。
4.本题代码
二.pta7-2求最大值及其下标
1.设计思路
先用一个数组储存输入的n个数,再定义一个temp=0,将temp【0】与a【1】进行比较,如果,a【i】比较大,则用temp替换i。在这里用个循环,使a【temp】与n个数进行比较和取代,从而找到最大值。
2.本题pta提交列表
3.本题调试中遇到的问题
在a【temp】和a【i】的比较过程中,如果a【i】较大的话,temp替代它,而我使用了大于号,逻辑错误,导致了答案错误。
4.本题代码
三.pta7-14简化的插入程序
1.设计思路。
在本题中先用一个数组,一个for循环存储一下输入的n个数,然后把需要比较的数放到数组的最后面,再用一个循环将数组里的数和最后一个数进行比较,如果该数大于a【i】则把两者进行调换。以此类推,从而产生新的一组数。
2.本题的pta提交列表
3.本题提交过程中遇到的问题
本题在dev里面多了个printf,而pta的输出比较严格,所以出现了错误,应该把printf删去。
4.本题代码
黄月浩pta数组7-1循环右移
二.截图本周题目集pta的最终排名。
三.同学代码互评
、
下面的是我的代码,黄月浩同学先将元素的总和保存下来,然后在插入进行比较,判断的次数较多,我的代码使用了循环进行比较,缩小了框架。
四.本周学习总结
1.学会了使用数组有效的存放数据,在要使用一组数据的时候,用数组进行比较很有效,特别是循环比较。不足:
2.学习了二维数组解决矩阵问题。不足:但是矩阵下标的规律掌握的不够好。
3.在做字符串类型的题目时候,因为类型比较多变,要注重总结。不足:对字符串和字符的输入输出掌握的不是很好,也不是很清楚字符数组的存储。
4.string类型的函数运用的比较少,运用不熟练。
不会的题目:矩阵的相乘,查证身份证,出生年份,点赞,出租,求矩阵局部最大值等题。
函数
一.PTA实验报告
一.7-1求组合数。
1.设计思路:先把总的大流程写出来,再调用一个子函数实现对阶乘和的计算。
2.本题pta提交列表
3.代码截屏
2.7-2求幂之和
1。设计思路
先用一个主函数输入n,再调用子函数计算幂指数之和。子函数里面使用一个while循环将幂指数的和加在一起,最后return这个总和进入主函数进行输出。
2.本题pta提交列表
3.本题调试中遇到的问题
运行超时,经过检查,发现在while循环的时候忘记加了一个大括号,导致了死循环。
4.本题代码
3.7-4验证哥德巴赫猜想
1.设计思路
先使用一个子函数判断素数,判断数x是否由两个数一起组成,在主函数里面把x用两个for循环拆成两个不同的数的组合,再分别调用子函数判断那两个数是否为素数。
2.本题提交列表
3.调试中遇到的问题
产生两个不同的数的时候是要运用两个for循环的。在m%i是取余。在子函数里面用return 0和return 1区分返回值。
4.本题代码
二.代码互评
互评同学名称:黄月浩。
我和黄月浩同学的代码的大体思路一致,她在输出结果的时候比我更加严谨。
三.本周pta最后排名
四.学习总结
1.函数的变化比较复杂,但是调用函数可以为增加代码的效率。在本周的学习中我学会了对函数的调用。
2.子函数除了void类型都要返回一个值。
3.全局变量和局部变量的使用。全局变量可以解决多结果返回的问题。
4.不足:循环嵌套使用的比较少,使用过程中经常出现问题。
string类型的函数运用的比较少。
递归和循环的使用结合容易出错。
对局部调用函数的方式运用的不熟练。
5.pta不会的题目。
7-2,7-6,7-9,7-19,7-11.