• C语言I作业07


    一、本周作业头##

    这个作业属于那个课程|C语言程序设计II
    --|:--:--
    这个作业要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9935
    我在这个课程的目标是|熟练掌握好C语言,培养自己的思维能力,同时加快敲代码速度。
    这个作业在那个具体方面帮助我实现目标|帮助我熟练的掌握switch语句以及排版能力
    参考文献|百度百科、CSDN博客、C语言程序设计

    二、本周作业##

    1.PTA实验作业####

    1.1 统计学生成绩

    1.1.1数据处理####

    数据表达:使用了N,percent,score=0,i,A=0,B=0,C=0,D=0,E=0;N表示输入的正整数,score表示学生成绩,percent表示分数的十位;
    i表示循环起点;A表示90-100分的人,B表示80-90分的人,C表示70-80分的人,D表示60-70的人,E表示60分以下的人。类型:都是属于int整型。

    数据处理:逻辑表达式:for(i=1;i<=N;i++),算术表达式:percent=score/10; 用到了for循环以及switch循环语句

    伪代码:####

    #include<stdio.h>
    int main ()
    {
    int N,percent,score=0,i,A=0,B=0,C=0,D=0,E=0;
    输入整数N;
    for(当i大于N时跳出循环);
    {
    输入得分score;
    percent=得分score/10;
    switch(percent){
    case 10: 评分为A++;跳出循环;case 9:评分为A++;跳出循环;
    case 8:评分为B++;跳出循环;case 7:评分为C++;跳出循环;
    case 6:评分为D++;跳出循环;default:评分为E++;跳出循环;
    }...
    }...
    输出A,B,C,D,E每个评分的个数;
    return 0;
    }
    

    1.1.2实验代码截图#####

    1.1.3 造测试数据####

    输入数据|输出数据|说明
    --|:--:--:--
    N=3,score=100,score=100,score=100;|A=3,B=0,C=0,D=0,E=0|成绩大于90属于A
    N=3,score=60,score=60,score=60;|A=0,B=0,C=0,D=3,E=0|成绩等于60属于D
    N=3,score=80,score=70,score=60;|A=0,B=1,C=1,D=1,E=0|成绩等于80属于B,成绩等于70属于C,成绩等于60属于D

    1.1.4 PTA提交列表及说明####

    说明:####

    部分正确:因为在Dev上运行过,所以只有一条错误,这条错误是我在运行的时候无论输多少,都是A=0,B=0,C=0,D=0,E=N;经过自己的检查发现switch语句在for循环内
    而在开始的时候我用了大括号把for循环与switch语句分开了。

    1.2 整数的分类处理####

    1.2.1数据处理####

    数据表达:使用了int N,A2=0,i,max=0,count1;double A3=0,sum=0; int a[N];N表示输入的正整数,i表示循环起点,A2表示存在整数 K 使之可以表示为 3K+1 的整数的个数,max表示能被 3 整除的最大整数;A3 表示存在整数 K 使之可以表示为 3K+2 的所有整数的平均值;count1表示存在整数 K 使之可以表示为 3K+2的整数的个数;sum表示整数 K 使之可以表示为 3K+2 的所有整数之和;a[N]表示存放N个元素的数组。
    数据处理:逻辑表达式:for(i=0;i<N;i++),条件表达式:if(a[i]%30),if((a[i]-1)%30),if((a[i]-2)%30,if(count10,if(a[i]>max);赋值表达式:
    max=a[i];算术表达式:sum=sum+a[i], A3=sum/count1。运用了for循环,if-else语句以及switch语句。

    伪代码:####

    #include<stdio.h>
    int main ()
    {
        int N,A2=0,i,max=0,count1;
        double A3=0,sum=0;
    输入正整数N;
    int 数组a[N];
    for(当i大于N时跳出循环){
    输入整数数组a[i];
    如果整数数组a[i]除以3取余等于0;
    如果a[i]大于最大值max{
    最大值max等于a[i];
    }
    如果(a[i]-1)除以3取余等于0{
    存在整数 K 使之可以表示为 3K+1 的整数的个数加一个;
    }
    如果(a[i]-2)除以3取余等于0{
    计算存在整数 K 使之可以表示为 3K+2的所有整数累加;
    计算存在整数 K 使之可以表示为 3K+2 的所有整数的平均值;
    }
    }
    switch(max){
    case 0:
         输出NONE;跳出循环;
    default:
         输出能被 3 整除的最大整数;跳出循环;
    switch(A2){
    case 0:
         输出NONE;跳出循环;
    default:
         输出存在整数 K 使之可以表示为 3K+1 的整数的个数;
    if(count1==0){
         输出NONE;}
    else{;
         输出存在整数 K 使之可以表示为 3K+2 的所有整数的平均值;
    }
    return 0;
    }
    

    1.2.2实验代码截图#####


    1.2.3 造测试数据####

    输入数据|输出数据|说明
    --|:--:--:--
    N=8。5,8,7,6,9,3,1,10|max=9,A2=3,A3=6.5|这段数中能被 3 整除的最大整数为9,存在整数 K 使之可以表示为 3K+1 的整数的个数为3,存在整数 K 使之可以表示为 3K+2 的所有整数的平均值为6.5
    N=8。15,16,18,7,6,9,1,10|max=18,A2=3,A3=NONE|这段数中能被 3 整除的最大整数为18,存在整数 K 使之可以表示为 3K+1 的整数的个数为3,存在整数 K 使之可以表示为 3K+2 的所有整数的平均值为0,因为不存在整数 K 使之可以表示为 3K+2。
    N=3。9,9,9|max=9,A2=NONE,A3=NONE|这段数中能被 3 整除的最大整数为9,存在整数 K 使之可以表示为 3K+1 的整数的个数为0,存在整数 K 使之可以表示为 3K+2 的所有整数的平均值为0,因为不存在整数 K 使之可以表示为 3K+1和3K+2.

    1.2.4 PTA提交列表及说明####


    编译错误:double型变量不能使用switch语句
    部分正确:在for循环当中,把if语句放在for循环外面

    2.代码互评###

    自己代码|同学代码
    --|:--:--
    |

    不同点:####

    1.该同学同样是使用switch语句与if-else语句,但我们的不同点在于我是开始将闰年与非闰年的二月用if-else语句
    表示出来,少敲了许多代码行。
    2.该同学直接把不同月份的天数直接算出,而我只是用一个表达式表达出,因而他的简单些,而我的一看就可以看懂我的意思。
    但是有点复杂化。
    

    自己代码|同学代码
    --|:--:--
    |

    不同点:####

    1.我和该同学最大的不同点在于我是在switch语句之前使用score/10,而该同学是在使用switch语句时使用score/10,有异曲同工之妙。
    2.该同学的代码感觉比我的规范些,让人看起来很舒服。
    3.与该同学的还要一个不同点在于case可以有几个常量表达式,所以该同学的case10,case9所表达的是一样。
    

    不同点:####

    3.学习总结###

    3.1 学习进度条

    周/日期|这周所花的时间|代码行|学到的知识点简介|目前比较迷惑的问题
    --|:--:--:--
    10/8-10/12|5h|224|if-else语句和输入输出格式|变量的处理
    10/13-10/18|12h|263|for循环语句,如何计算累加题|不知道什么时候用include<math.h>
    10/19-10/26|15h|334|如何编写自定义函数及更加熟练掌握for循环|自定义函数的使用
    10/26-11/2|14h|355|如何使用逻辑表达式及else-if语句|如何去寻找else-if之间的关系
    11/2-11/8|13h|284|如何使用switch语句|switch语句与for循环同用时的关系

    3.2 累积代码行和博客字数

    3.3 学习内容总结和感悟

    3.3.1 学习内容总结

    3.3.2 学习体会

    在这一周的学习当中,学习到了新的知识点--switch语句,switch语句可以处理多分支选择问题,这对我们的编写程序又省了不少的力气,在PTA作业当中,
    前三道题使用switch语句可以简便的解决,但当写到第四题的时候,自我感觉直接使用if-else语句可能比switch语句更加简单,但也可能是我对switch语
    句的不熟练让我产生的这样的感觉。但总体来说,在学习了switch语句后,使我的解题代码行数变少了。同时PTA作业很好地把我们之前所学习的知识囊括了
    进去,使我们在学习新的内容的时候,同时可以回顾之前所学习的知识;比如在 整数分类处理这道题内,我使用了for循环,if-else语句,switch语句,以及
    后面的数组知识。

  • 相关阅读:
    Ceph的参数mon_osd_down_out_subtree_limit细解
    java:警告:[unchecked] 对作为普通类型 java.util.HashMap 的成员的put(K,V) 的调用未经检查
    Java 原始类型JComboBox的成员JComboBox(E())的调用 未经过检查
    Android draw Rect 坐标图示
    不用快捷键就能使用Eclipse的自动完成功能
    Java 窗体居中 通用代码
    Java文件复制删除操作合集
    Java Toolkit类用法
    DEVEXPRESS 破解方法
    如何使用Java执行cmd命令
  • 原文地址:https://www.cnblogs.com/zengzi123/p/11806184.html
Copyright © 2020-2023  润新知