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.而我自己却是一步步的加入判断,使程序完善