一、PTA实验作业
题目1:7-3 编程打印空心字符菱形
-
本题PTA提交列表
-
设计思路
3.本题调试过程碰到问题及解决办法
刚开始这题无从下手,后来仔细观察发现空格数目是递减的,但是最难的是中间的空格,始终不得要领,最后请教同学,才明白中间的空格和行数有关,所以又加了一个循环来输出中间的空格
题目2:7-7 歌唱比赛评分系统
-
本题PTA提交列表
-
设计思路
- 1.定义七个整型变量i,j,repeat,n,max,min,sum,一个浮点型变量score
- 2.输入repeat的值
- 3.i=1
- 4.i++,sum=0
- 5.输入n和score的值
- 6.max=score,min=score
- 7.j=1
- 8.j++,sum=sum+score
- 9.若min>score,则min=score,若max<score,则max=score
- 10.若 j==n,跳出循环
- 11.输入score的值
- 12.若j<=n,返回第7步,否则执行下一条语句
- 13.score=(sum-max-min)/(n-2)
- 14.输出score的值并保留两位小数
- 15.若i<=repeat,返回返回第3步
3.本题调试过程碰到问题及解决办法
刚开始的时候没有在进入第一个循环时重置sum的值,导致sum的值累加了,从而第二次repeat时错误
后来经过调试发现问题
题目3:7-8 餐饮服务质量调查打分
-
本题PTA提交列表
-
设计思路
- 1.定义十一个变量i,j,n,k,repeat,grade,grade1,grade2,grade3,grade4,grade5
- 2.输入repeat的值
- 3.i=1
- 4.输入n值
- 5.grade1=0,grade2=0,grade3=0,grade4=0,grade5=0
- 6.j=1
- 7.j++,
- 8.输入grade的值
- 9.若grade1,则grade1++;若grade2,则grade2+;若grade3,则grade3++;若grade4,则grade4++;若grade==5,则grade5++,
- 10.若 j<=n,返回第七步,否则执行下一条语句
- 11.输出"1:"
- 12.k=1
- 13.k++
- 14.输出"*",若k<=grade1,返回第13步,否则执行下一条语句。
- 15.输出换行符
- 16.同理,按照12~16步的方法输出当k分别第2,3,4,5行的星号
- 17.若i<=repeat,返回第4步
3.本题调试过程碰到问题及解决办法
这道题难点主要在怎么利用循环来输出星号,刚开始我的侧重点在嵌套上,然后怎么想也实现不了,然后我就想会不会不是嵌套的问题,然后我就引入一些变量来控制星号的循环,这样问题就解决了
二、同学代码结对互评
1.互评同学名称:Soyam(黄泽彬)
2.我的代码、互评同学代码截图
这是泽彬的代码
这是我的代码
int repeat,n,max,min,sum;//max放最高分,min放最低分,sum放总分
double score;//score放成绩
scanf("%d",&repeat);
for(int i=1;i<=repeat;i++)
{
sum=0;
scanf("%d",&n);
scanf("%lf",&score);//输入评委人数和成绩
max=score;
min=score;//先把第一个成绩给最大值和最小值
for(int j=1;j<=n;j++)
{
sum=sum+score;//总分累加
//用if语句选出最大值和最小值
if(min>score)
{
min=score;
}
if(max<score)
{
max=score;
}
if(j==n)
break; //当j=n时,跳出循环,不然会多输一个值
scanf("%lf",&score);
}
score=(sum-max-min)/(n-2);//算出平均分
printf("score:%.2f
",score);
}
3.我和同学代码不同在哪里?有哪些各自优势?你更喜欢哪种代码风格?如果同学代码有错的也请帮忙指出来哪里出问题。
泽彬的代码存在一些问题,下面是改进
他的代码总的来说思路还算清晰,虽然有些错误但是方向是对的,只是应该适当的加一些注释,这样可读性会更高一些。
他的代码中是先给min,max一个初值,而我是把输入的一个值给min,max,虽然我这样做比较麻烦但是通用性更高,而他的代码只适用本题的条件
三、截图本周题目集的PTA最后排名。
PTA排名
四、本周学习总结
1.你学会了什么?
- 用do-while语句构成的循环,在while后的表达式为零时结束循环
- 嵌套循环时是先执行最里面的循环,然后一层一层退出来,所以这样计算量很大,我们应该要压缩循环次数,比如课本上的搬砖那题
- 学会了用变量来累积次数,从而实现满足某个条件后跳出循环
2.本周的内容,你还不会什么?
打印空心菱形那题真的很难,字母的递增不是很理解,看题目时经常完全没有思路,我觉得还是要多练,练得多了就熟练了。