• C语言I博客作业07


    问题 答案
    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 作业链接
    我在这个课程的目标是 学会并掌握C语言基本知识,能够相关C语言的各种代码
    这个作业在那个具体方面帮助我实现目标 学会使用switch语句
    参考文献 C语言程序设计(第3版)、百度、360浏览器

    1.PTA实验作业(20分/题)

    1.1 7-12 统计学生成绩 (15 分)

    题目内容描述:本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为D;小于60为E。输入格式:输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。输出格式:在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
    

    1.1.1数据处理

    数据表达:我用了N、i、mark、sum、A、B、C、D、E这些变量,其中N和mark都是用scanf函数来赋值,i定义初始值为1,sum是用if-else语句来进行赋值,A、B、C、D、E定义初始值都为0,它们都是整型;
    数据处理:数据用到的表达式为for(i=1; i<N; i++)、case 常量表达式: 语句段;流程结构用了for循环、if-else语句、switch语句
    伪代码:
        Begin(算法开始)
        输入N的值
        for(i=1; i<=N; i++)  //进行for循环
        输入mark
        if mark>=90
        则sum=1
        if mark>=80
        则sum=2
        if mark>=70
        则sum=3
        if mark>=60
        则sum=4
        else sum=5
        switch(sum)
        case 1: A累加; 退出; 
        case 2: B累加; 退出;
        case 3: C累加; 退出;
        case 4: D累加; 退出;
        case 5: E累加; 退出;
        输出A、B、C、D、E的值 
        End(算法结束)
    

    1.1.2实验代码截图

    1.1.3 造测试数据

    输入数据 输出数据 说明
    7,77 54 92 73 60 65 69 1 0 2 3 1 用题目所给数据
    5,100 100 100 100 100 5 0 0 0 0 都为满分
    5,90 80 70 60 50 1 1 1 1 1 五分制中都有人

    1.1.4 PTA提交列表及说明

    提交列表说明:
        1.答案错误:在后面出现了sum这个变量,而在前面没有定义sum;
        2.答案正确:int后面加一个sum答案就正确了。
    

    1.2 7-13 整数的分类处理 (20 分)

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

    1.2.1数据处理

    数据表达:我用了n、i、a1、a2、k、max、number、sum、integer这9个变量,其中i、a1、a2、k、max、sum定义的初始值为0,n和integer通过scanf函数来赋值,number是通过if判断语句来进行赋值,除了sum是浮点型,其余都是整型;
    数据处理:数据用到的表达式为for(i=0; i<n; i++)、integer%==1~3、case 常量表达式:语句段;流程结构用了for循环、if-else语句、switch语句;
    伪代码:
        Begin(算法开始)
        int n,i,integer,a2=0,a1=0,k=0,max=0,number;
        double sum=0;
        输入n值
        for(i=0; i<n; i++)
        输入integer值
        if integer%3==0
        则number=1{
        if integer>max
        则max=integer}
        if integer%3==1
        则number=2
        if integer%3==2
        则number=3
        k累加1
        switch (number)
        case 1: 把max的值赋给a1; 退出;
        case 2: a2累加; 退出;
        case 3: sum不断累加integer的值; 退出;
        if a1==0
        则输出NONE
        否则输出a1的值
        if a2==0
        则输出NONE
        否则输出a2的值
        if sum==0
        则输出NONE
        否则输出sum/k的值
        End(算法结束)
    

    1.2.2 实验代码截图

    1.2.3 造测试数据

    输入数据 输出数据 说明
    8,5 8 7 6 9 1 3 10 9 3 6.5 题目所给数据
    8,15 18 7 6 9 1 3 10 18 3 NONE 题目所给数据
    5,6 2 1 4 5 6 2 3.5 随机数

    1.2.4 PTA提交列表及说明

    提交列表说明:
        1.编译错误:后面用到a1而前面没有定义a1;
        2.多种错误:有两个表达式用错变量;
        3.格式错误:在printf输出时都在输出变量后面空格,然后都改在前面空格;
        4.格式错误:在第一个printf("NONE")表达式中也在前面空格;
        5.答案正确:改正错误后答案正确。
    

    2.代码互评(5分)

    题目:7-10 计算天数

    同学代码截图

    自己代码截图

    不同之处:
        1.定义的变量不同;
        2.switch语句里面的语句表达式不同,第一个同学只写了平年的表达式,第二个同学分大月、小月;
        3.switch语句末尾用了default。
    

    3.学习总结(15分)

    3.1 学习进度条(5分)

    这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    第一周(9/17-9/22) 5小时 43行 学会写最简单的代码
    第二周(9/24-10/4) 6小时 62行 学会温度转换
    第三周(10/6-10/13) 11小时 86行 学会写函数程序 不知道怎么在什么情况下调用scanf()函数
    第四周(10/14-10/20) 10小时 105行 for循环语句和循环结构 不知道定义多少个变量
    第五周(10/21-10/27) 10.5小时 114行 学会怎样去定义一个函数和它的基本格式 对于函数题的编程不知道该怎么样去设计
    第六周(10/28-11/3) 12小时 135行 学会二分支结构和if-else语句 对于输入一个正整数,然后输入对应数量的数值的代码编写存在迷惑
    第七周(11/4-11/10) 13.5小时 173行 学会怎样用switch简化代码的复杂性 使用switch语句时怎么能够很好的与其他语句很好的衔接

    3.2 累积代码行和博客字数(5分)

    3.3 学习内容总结和感悟(5分)

    3.3.1 学习内容总结

    这周我们学习了C语言中的switch语句,switch有的时候可以简化if-else语句的繁琐性,还可以实现多分支结构,当符合条件时用break跳出然后输出。switch语句要与前面有很好的衔接,而且要思考怎么去设计常量表达式可以体现出程序有条不紊。
    

    3.3.2 学习体会

    这一周的PTA作业题目的量减少了好多,但是题目的难度系数越来越大,而且老师规定必须每个题目要用switch语句,有些题目好用,但有些题目感觉上不怎么好用,因为我理不清逻辑关系,并且还存在题目都没有看懂。我觉得switch语句的关键在于那个常量表达式,如果没有理清关系,就会导致答案出错。当然,这都需要自己去不断努力,而且还得需要不断坚持多练,才可以让自己变得更加优秀。
  • 相关阅读:
    排列 POJ
    [kuangbin带你飞]专题二十一 概率&期望 部分题解
    队列最大值&滑动窗口最大值【剑指offer】
    Python实现可视化界面多线程豆瓣电影信息爬虫,并绘制统计图分析结果
    剑指offer【复杂链表的复制】
    树上博弈——从根节点先后走向叶子节点输赢【递归水题】
    给一个长度为n的字符串,找出长度为m的最小字典子序列【单调栈】
    Hrbust 1814 小乐乐的化妆品【01背包】
    Hrbust 1541集合划分 & Hrbust 2002幂集【dp】
    Hrbust 1333 GG的关心【01背包】
  • 原文地址:https://www.cnblogs.com/classtest123/p/11808715.html
Copyright © 2020-2023  润新知