题目1:7-10 打印沙漏
1.PTA提交列表
2.设计思路
先将沙漏最中间的一行的固定的一颗星扣掉,再把所需用到的其他星星上下成对的减去,算出最后余下的星数。再把沙漏上下看成对称图形,上半部分每行依次减少两个星,而增加一个空格符,而且题目恰好第一行的星数恰好等于沙漏的总行数,每输入完当行的最后一颗星要换行,下半部分与上半部分相反,可利用绝对值来实现循环。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
一开始第一个for循环语句的小于号后多打了个等号,程序多循环了,导致沙漏形状不对。
题目2:7-29 打印九九乘法表
1.PTA提交列表
2.设计思路
本题较上题来说较为简单,只需要使用循环嵌套,将乘法表的行和列一起表示。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
刚开始不理解题目中的“其中等号右边数字占4位、左对齐。”。所以导致格式错误。
题目3:7-15梅森数
1.PTA提交列表
2.设计思路
本题需使用<math.h>来进行乘方,运用循环嵌套的和判断来筛选素数,使i=2为初值,不能为1,否则后面循环直接跳出,并在i循环用不断取余来判断,当j等于meisen时,那么这个数将不是素数,否则是。如果遇到素数那么则count加上1,如果大循环到最后,count仍然为0,则输出None,每输出一个数之后都要回车换行。
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
画蛇添足地将if(meisen<=meisen_max)后面多添加了个减1使得一些临界条件的值取不到,(如:输入3的时候正确答案是3和7,而错误答案变为只有3)。
三、同学代码互评
1互评同学名称:
我的代码
互评同学代码
我的代码比较投机取巧,直接用教过的数学方法进行运算。
而世坤的代码则十分符合题目要求,并且使用了子函数进行运算。
我的代码简单,而世坤的代码更加有水平。
相比较而言我觉得世坤的代码更好。
最终排名:
学习总结
1、学会了基本的函数。
2.使用continue和break.
continue:直结束当下的循环,进入下一次循环.
break:直接跳出当前循环
多重嵌套只对最近的的循环体有效
3.switch语句。
(1):一般形式为
(2)switch(表达式){
case 常量表达式1:语句段1;break;
case 常量表达式2:语句段2;break;
... ...
case 常量表达式n:语句段n;break;
default 语句段n+1;break;
}
4.循环嵌套(最重要):
用while进行循环:while(表达式)语句,当表达式为非0值时,执行while语句中的内嵌语句。特点是先判断表达式,后执行语句.
用for进行循环:如for(i=0;i<3;i++)i=0是初始化部分;i<3是循环判断条件部分(当满足此条件时才进入执行for循环中的语句);i++是执行完循环体语句后的操作。
我觉得要是知道 循环次数 可以 用for,
要是不知道循环的次数,但是知道循环的终止条件 , 则用while.
自我评价
对于一些基本的题目以及循环嵌套能有较为清晰的思路,但有时循环嵌套内的代码仍会有问题,对于较难题还是比较无能为力。
仍需研究的题目:7-8,7-9,7-38,7-39