循环

一,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.

 

posted on 2017-12-30 18:41  Noko  阅读(520)  评论(0编辑  收藏  举报