C语言I博客作业07

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 C语言I作业07
我在这个课程的目标是 熟练运用switch语句
这个作业在那个具体方面帮助我实现目标 思考用switch语句地解题过程中,结合其他所学知识
参考文献 百度

 

 

 

 

 

 

 

 

 

 

 

1.PTA实验作业

 

 

 

 

 

 

 1.1 计算天数 (15 分)

输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。

 

1.1.1数据处理

数据表达:定义了三个整形变量,year,month,day,分别代表年月日,接着用if-else和switch语句嵌套解题

数据处理:

Begin 
输入 year/month/day 
if year满足leap-year地条件 
   Enter switch(month) 
   case (1-12);break; 
   分别对应 
else 进入common-year 
   Enter switch(month) 
   case(1-12);break; 
   一一对应 
return 0; 
Exit 

 

 

  1.1.2实验代码截图


 

 

  

 

 

 

 

 

 1.1.3 造测试数据

输入数据

输出数据

说明

2000/08/23 236 能被400整除地闰年
2019/08/23 235 平年
2004/08/23 236 能被4整除且不能被100整除地闰年
1900/08/23 235 能被100整除地平年

 

 

 

 

 

 

 

 

 

 

 

 

 

 1.1.4 PTA提交列表及说明

 

 

编译错误 误将switch语句中地一个break后面的分号遗漏
答案错误 在做天数的加减法时把天数加错了
答案错误 能被400整除地闰年这个条件疏漏了

 

 

 

 

 

 

1.2 整数的分类处理 (20 分)

给定 N 个正整数,要求你从中得到下列三种计算结果
A1 = 能被 3 整除的最大整数
A2 = 存在整数 K 使之可以表示为 3K+1 的整数的个数
A3 = 存在整数 K 使之可以表示为 3K+2 的所有整数的平均值(精确到小数点后 1 位)
输入格式:
输入首先在第一行给出一个正整数 N,随后一行给出 N 个正整数。所有数字都不超过 100,同行数字以空格分隔。
输出格式:
在一行中顺序输出 A1、A2、A3的值,其间以 1 个空格分隔。如果某个数字不存在,则对应输出NONE。

 

1.2.1 数据处理

数据表达:定义了7个整型变量N,i,num,maxnum,k,A1,A2。和一个浮点型变量A3。其中num和maxnum用来输出能被3整除的最大值。K代表 满足A3条件的个数用来求平均值。

数据处理:

BEGIN
令 maxnum=0 
输入 N

for (i = 0;i < N;i++)
   
    
         switch(num%3)
                  case num%3=1;则A2++;break;
                  case 2:A3 = A3 + num;K++;break;

得出A1,A2,A3,K,maxnum的值,跳出for循环语句

     if (maxnum == 0)
        输出NONE
    else
        输出maxnum
    if (A2 == 0)
         输出NONE
    else
      输出NONE
    if (A3 == 0)
          输出NONE
    else
        输出A3/K

END

1.2.2 实验代码截图

 

 

 

 

 1.2.3 造测试数据

输入数据

输出数据

说明

5
55 66 77 88 99
99 2 77.0 随机5位数
6
23 78 56 44 56 85
78 1 44.8 随机六位数
3
31 91 61
NONE 3 NONE A1,A3不存在的数

 

 

 

 

 

 

 

 

 

 

1.2.4 PTA提交列表及说明

 

 

编译错误

在改代码的时候在某条语句中,不小心用了中文的分号,害我找了半天

答案错误

输出的答案之间没有用空格联系起来,后在%d之前加入空格解决

答案错误

误将所有的printf语句放在了for循环语句之中,导致答案按输出错误
     
 

 

 

 

 

 

 

 

 

 

2.代码互评

同学1代码

 

 

 

 

我的代码

 

 

 

 

 

代码相同之处:我和这位同学的思路大致相同,体现在,给定一个额外的参数(我的是maxnum,他的是result)来判断输出A1的结果。

不同之处 这位同学把A2值的判断放在了if语句当中,而A3的值则单独用switch语句判断。 我的代码则是把A2,A3的值都放在了switch语句中得出。

 

 

 

3.学习总结

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第六周 20小时 372 if-else语句和数学函数 暂无
第七周 10小时 226 分支结构 暂无
第八周 12小时 110 for循环结构 暂无
第九周 8小时 180 函数的声明,定义和调用 对于自定义函数的用法还比较迷茫
第十周 21小时 350 学习了巩固了嵌套语句和逻辑表达式的使用方法 对于字符型数据类型的运用和各种运算符的先后级还有待学习
第十一周 17小时 530 学习了switch语句的使用方法,和一些数组的使用 getchar不大会用,数组也是

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2博客字数和代码行数

 

 

 

 

3.3 学习内容总结和感悟

  这一周的学习任然是十分的紧张,感觉除了写代码就在写其他作业,完全没时间来打游戏什么的,但是收获还是很多的。通过不断地解题,思考,再结合百度的帮助。我还是收获了许多。再加上有许多同学来问题的缘故,我能知道许多其他同学的思路,再反过来优化自己的代码。这使得我受益良多。

 

posted @ 2019-11-08 08:53  Carrout  阅读(173)  评论(0编辑  收藏  举报