循环
一、PTA实验作业
【7-6、统计素数并求和】
1、PTA提交列表
2.、设计思路
由于1不是素数,所以输入1时要从2开始运算。count为素数个数,sum为素数和,初始都定义为0。外层用i作为循环共(M-N)次,内层用k作为循环共(i-2)次。外层循环提供一个数,内层循环判断所给数字是否为素数,若不是素数则进行下一个数的判断,若是素数则对count加一并将这个素数加入sum中。最后输出count和sum。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、判断素数条件不明导致循环无法结束
2、未考虑M=1时的情况
【7-16 小于m的最大的10个素数】
1、PTA提交列表
2、设计思路
输入m的值后将num定义为0,运用循环嵌套,外层循环提供实数,内层循环判断该数是否为素数,若不是判断下一个数,若是输出并给num加一,当num为10时结束程序。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、循环条件不明导致循环无法跳出
2、输出格式错误,应为%6d
【7-22 求组合数】
1、PTA提交列表
2、设计思路
定义fact函数,通过从1开始的循环相乘计算给定常数的阶乘值并返回;主函数输入m和n的值后调用fact函数经行x值的计算,最后输出x。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、未考虑用函数导致程序冗长,出错多而且无法运行
2、fact函数用于计算阶乘,为避免数字过大应用double定义,与主函数中x一致
3、输出格式没有注意空格,而且要用%.0f输出x的值
二、同学代码结对互评
互评同学:廖祥祥
互评题目:7-16
代码比较:
左侧为廖祥祥同学的代码,右侧为我的代码。我们对于跳出循环的方式不同,我的比较直接易懂,祥祥的比较简洁明了。相比起来我更喜欢廖祥祥同学的代码风格。
三、PTA最后排名
四、学习总结
1、学会了用while,for进行循环
掌握了循环的嵌套
学习如何用switch进行选择
2、不足:对switch的用法不熟练
对goto的用法不熟练
对循环嵌套仍有一定疑问,如内外层循环的循环条件,break的使用,何时跳出循环等
3、不会的题目:7-8,7-9,7-18,7-24,7-34
函数
一、PTA实验作业
【7-3 求幂之和】
1、本题PTA提交列表
2、设计思路
输入n后运用循环,计算2的i次方以及加起来的合,最后输出y。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、对math函数调用不熟练
2、输出格式错误,等号前后有空格
3、没有运用函数
【7-4 验证“哥德巴赫猜想】
1、本题PTA提交列表
2、设计思路
定义js函数,判断给定数是否为素数,若是返回k=1,若不是返回k=0。运用主函数中循环依次找给定偶数的两个素数和,若符合判断条件直接输出并跳出循环。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、break使用不当导致循环无法跳出
2、输出格式错误,等于号和加号前后都有空格
【7-8 求n以内最大的k个素数以及它们的和】
1、本题PTA提交列表
2、设计思路
输入m与k,定义num=0,flag=0。运用循环嵌套,外层循环提供实数,内层循环判断所给实数是否为素数,若为实数则判断i与x是否相等,若不等则继续外层循环,若相等则判断flag值是否为零,以此来控制输出格式,最后用num控制外层循环跳出。循环结束后再进行输出完成程序。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、没有利用flag控制输出导致输出格式错误
2、外层循环条件错误导致循环无法跳出
3、没有运用函数
二、同学代码结对互评
互评同学:吴旷麟
互评题目:7-3
代码比较:
左侧为我的代码,右侧为吴旷麟同学的代码。可以看出我俩的思路大致相同,但是他运用函数解决问题,比较方便。相比之下我更喜欢吴旷麟同学的方式。
三、PTA最后排名
四、本周学习总结
1、学会了如何使用子函数来写程序
局部变量和全局变量的用法和作用范围
2、不足:对在子函数中调用别的子函数还不熟练
对静态变量的使用还有疑惑
对一些特殊子函数情况处理不熟练,如有多种结束函数途径的话,多个return应如何写
3、不会的题:7-2,7-9
数组
一、PTA实验作业
【7-1 数组元素循环右移问题】
1、本题PTA提交列表
2、设计思路
先通过循环给数组赋值,然后运用循环嵌套,外层循环m次并给k赋值,最后给a[0]赋值,内层循环将每一个数向后移动一位。整个循环将每一位数向后移动一位并把最后一位移至第一位。最后通过循环输出移动后的数组。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、嵌套循环条件及赋值错误导致数组移位错误
2、忽略”序列结尾不能有多余空格“,导致输出格式错误,将最后一个数分开输出即可
【7-6 冒泡法排序】
1、本题PTA提交列表
2、设计思路
输入N,K后,通过循环输入数组,后运用循环嵌套,外层循环确定循环次数为K次,内层循环依次判断相邻两个数的大小并把大的那个数放在后面。当循环结束后用循环输出排序后的数组。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、外层循环条件出错导致循环次数过多
2、忽略”尾不得有多余空格“导致输出格式有误
【7-12 选择法排序】
1、本题PTA提交列表
2、设计思路
通过循环输入数组,运用循环嵌套,外层循环确定循环次数(n-1)并对x赋值k,内层循环通过依次比较相邻两数确定最大数的下标并赋值给x,之后外层循环进行a[x]与a[k]的交换,进行(n-1)次后完成排序。最后通过循环输出排序后的数组。
3、本题代码
4、本题调试过程碰到问题及PTA提交列表情况说明
错误点:1、没有在内层循环之前给x赋值,导致交换出错。外层循环内内层循环之前需再定义一个x,然后才能完成两个数的交换
2、忽略"行末不得有多余空格",导致输出格式出错
二、同学代码结对互评
互评同学:吴振迪
互评题目:7-6
代码比较:
左侧为吴振迪同学的代码,右侧为我的代码。可以看出我俩的思路大致相同,但是最后的输出方式不同,吴振迪的比较简明直接,我的比较繁琐易懂。相比之下我更喜欢吴振迪的方式。
三、PTA最后排名
四、本周学习总结
1、学习了一维数组、二维数组的定义与运用,并熟练掌握
了解了应对不同种类的数组题型时的处理方法
学习了对于string函数中strcpy()、strcmp()、strcat()、strlen()的运用
2、不足:string使用仍不熟练,容易写错导致程序出错
3、不会的题:7-7,7-15,7-16,7-25,7-28,7-29,7-30