一、PTA实验作业
题目1.梅森数
1.本题PTA提交列表(要提交列表,不是结果)
2. 设计思路(此处用流程图最好)
1.定义三个变量n,num,count,且初始化count为1
2.读取一个数n
3.初始化整型变量i=1
4.当i<=n时,执行5,否则执行14
5.num = 2的i次方减1
6.调用isprime(int num)函数
7.进入isprime函数,当num为1时,返回值0,否则执行8
8.初始化k=2
9.当k<=num/2时,执行10,否则,执行12
10.判断num%k是否为0,若是,返回值0,否则返回值1
11.k++,返回9
12.判断返回值为1还是0,若是1,输出该数,并且count++
13.i++,返回4
14.判断count是否为0,若是,输出None,结束程序
3.本题调试过程碰到问题及解决办法
1.pow和sqrt里面数据类型的使用应该是(double,int),但在新版本vs和devc里面却不用刻意表示为该形式。我强制类型转换后,导致我的代码不能通过pta
2.count的使用,感觉有点麻烦,应该会有更简洁的写法来判断输出的个数是否为0
题目2.歌唱比赛评分系统
1.本题PTA提交列表(要提交列表,不是结果)
2.设计思路
1.定义三个整型变量n,repeat和temp和一个浮点型变量average
2.读取repeat
3.定义一个数组marks【10】用来存放评分
4.定义个整型变量k=0
5.当k<repeat时,定义一个整型变量sum且初始化为0,否则,结束程序
6.读取一个n
7.定义一个整型变量i且初始化为0
8.当 i <n时,执行9,否则执行14
9.定义一个整型变量j且初始化为i,
10.当j<n时,执行11,否则执行13
11.判断marks【i】和marks【j】的大小,若是marks【i】<marks【j】,利用temp交换两个变量的值
12.j++,返回10
13.i++,返回8
14.初始化i=1,当i<n-1时,执行15,否则执行16
15.sum+=marks【i】,i++,返回14
16.average=sum/(n-2),输出average
17.k++,返回5
3.本题调试过程碰到问题及解决办法
1.sum的值没有在每个循环中都初始化,导致第1组以后的平均数都不正确
2.这题我用了数组来存放数据,还不是很熟练,可与下一题联系
3.题意理解错误是最难受的。就不多说明了
题目3.餐饮服务质量调查打分
1..本题PTA提交列表(要提交列表,不是结果)
2.设计思路
1.定义三个变量n,repeat和x(存放打分的等级)
2.读取一个整数repeat
3.定义一个整型变量k且初始化k=0
4.当k<repeat时,执行5,否则结束程序
5.读取n的值
6.定义一个输出a【20】且初始化为0
7.定义一个整型变量i 且初始化为0
8.当i<n时,执行9,否则执行13
9.读取打分等级x
10.用switch来判断x的值
- case 1: a[0]++;break;
case 2: a[1]++;break;
case 3: a[2]++;break;
case 4: a[3]++;break;
case 5: a[4]++;break;
12.i++,返回8
13.初始化i=0
14.当i<=5时,执行15,否则k++,返回4
15.输出i+1: 作为输出格式
16.定义一个整型变量j且初始化为0
17.当k<a【i】时,执行18,否则,i++,返回14
18.输出 *,且printf(“\n”),j++,返回17
3.本题调试过程碰到问题及解决办法
1.参照上题,这题更加简单,且数组的使用更加灵活
2.打印的格式需要注意
3.switch的使用也很合理方便(被人提醒才使用它)
二、同学代码结对互评
1.同学名字:张弛
2.我的代码、互评同学代码截图
题目1.
题目2
题目3.
3.代码分析
1.题目1中我的代码用了自定义函数,结构上看着更加清晰,而他的代码量更加少,flag的使用也很灵活。在这种少量代码的题目上,他的代码会比我的更加优秀,但是在以后代码量大的情况下,我的代码就会比他的更好阅读。
2.题目2我和他的想法大同小异,只是我用的是for循环 他用的是while循环
3.题目3我们都是用了数组来存放数据,这种做法基于现在可能会很好用,但我也觉得是目前的内容自己没有完全掌握。嵌套循环的题目是真的烧脑,需要多做练习。
三、截图本周题目集的PTA最后排名。
四、本周学习总结、
1.你学会了什么?
1.自己学会了用数组
2.学会了冒泡排序法
3.嵌套循环的使用更加得心应手了
4.函数的使用也会简单的运用了
2.本周的内容,你还不会什么?
1.题目的阅读理解需要加强
2.嵌套循环的题目需要多理解,多想象
3.打印菱形的那个题目是真心觉得难