1.本章学习总结
1.1思维导图
1.2本章学习体会及代码量学习体会
1.2.1学习体会
本周学习了while、do while、for的循环语句,对于语句的语法基本理解,还有使用情况,特别是对于不知道具体循环次数,最好使用while或do while语句。对于循环的题目,感觉一开始做难有思路。就像龟兔赛跑,当搞清楚大循环和小循环后,就懂了。
1.2.2代码累计
2.PTA总分
2.1PTA题集及得分排名
2.2我的总分
单层循环+嵌套循环:290
3.PTA实验作业
3.1PTA题目1
题目简介:
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字
3.1.1算法分析
分别定义数字num,计算count,储存temp,提取的数字储存到x,位数的比较定义y和flag
输入num
if(num<0) 输出“fu”
temp=num
if(num==0) 输出“ling”
while(num!=0)
num/10提取位数 count+1计算位数
取y=count flag=y-1比较,若是第一位,则输出不带空格
若不相等,输出带空格的号
temp=temp-x*pow(10,y-1);
y=y-1; 位数相减,继续循环
3.1.2代码
3.1.3测试数据
3.1.4PTA提交列表及说明
- Q1:第一个数字带了空格
- A1:再加一个switch
- Q2:数字取位错误
- A2:修改count计数
- Q3:第一个带空格和不带空格的数字搞反了
- A3:将输出格式修改
- Q4:y和flag比较错误
- A4:加入y=y-1
3.2 PTA题目2
题目简介:
入一个正整数repeat (0<repeat<10),做repeat次下列运算:输入一个正整数n(1≤n≤20),表示有n个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~5这5个等级(1表示最低分,5表示最高分),试统计调查结果,并用打印出如下形式的统计结果直方图。*
3.2.1 算法分析
定义count1~5的变量,以及i1~5的变量
for(i<=reapet)
scanf n
for(j<=n)
scanf fen
switch 计数每个等级
统计完,printf 1
再循环输出” * “
一下4段依此类推
3.2.2 代码
3.2.3 测试数据
3.2.4 PTA提交列表及说明
- Q1: i1~5没有进行++,使程序进入死循环
- A1:加入i++的判断
- Q2:当一个等级没有评分时,无法换行
- A2:加入if else 的判断,将输出” * “ 的小循环套入
3.3 PTA题目3
题目简介
对任一正整数n(n<20),输出所有不超过2n−1的梅森数
3.3.1 算法分析
计算出pow(2,n)-1的值 num=pow(2,i)-1;
判断num是否为素数,count为判断
if(num%j==0) //能够整出,直接打破循环
break;
if(j>(num/2)&&num!=1)//超过num/2的时候。就直接输出为梅森数
{
printf("%d\n",num);
count=count+1;//计数
break;
3.3.2 代码
3.3.3 测试数据
3.3.4 PTA提交列表及说明
- Q1: if(j>(num/2)&&num!=1)语句写成if(j>(num/2)||num!=1)
- A1:修改即可
- Q2:没有对于输入1时候的判断
- A2:加入if(num==1)对其进行限制
4.代码互评
4.1代码截图
-
同学代码
-
自己的代码
4.2二者不同
- 1.代码思路差不多
- 2.就风格来说,他喜欢将判断再if else if里写完
- 3.而我自己却是一步步的加入判断,使程序完善