zoukankan      html  css  js  c++  java
  • C语言I博客作业02

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-1
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11452
    这个作业的目标 更深入了解C语言
    学号 20208933

    1.PTA实验作业

    1.1.冲锋衣选货及折扣 (15分)

    已知某会某冲锋衣电商准备在双12推出优惠活动,计划如下:

    货号 单价
    DG110013 812
    DG110018 879
    DG110004 735
    DG120002 649
    满899减50,满599减30。 现要求,输入完整的货号和数量,输出总价(保留两位小数)。 如果货号输入有误,则输出Error!

    1.1.1实验代码截图

    1.1.2数据处理

    数据表达:

    1.变量a:变量为整型,由输入得来,指商品总数;
    2.变量i:变量为整型,由赋值得来,用于限制循环次数;
    3.变量b:变量为浮点型,由计算得来,指商品总价;
    4.变量s[100]:变量为字符数组,由输入得来,指商品编号。

    数据处理:

    1.表达式:赋值表达式,算数表达式,关系表达式,逻辑表达式。
    2.流程结构:定义变量,赋值变量,while循环,if-else判断,输出结果。

    1.1.3PTA提交列表及说明

    • Q1:测试点1,测试点2一直答案错误。
    • A1:后来发现看题漏了后面的要求,满899减50满599减30,导致一直答案错误。

    1.2得分计算器(2005慈溪) (20分)

    学校举行校园歌曲演唱赛,共设7个评委,去掉一个最高分,去掉一个最低分,其余评 委的平均分即为选手的最终得分。试编程,输入7个评委的分数后,输出选手的最终得分。 (顶格输出,保留一位小数)

    1.2.1实验代码截图

    1.2.2数据处理:

    数据表达:

    1.变量a[7]:变量为浮点型数组,由输入得来,指七个成绩;
    2.变量b:变量为浮点型,由计算得来,指去掉最高最低分的平均分;
    3.变量sum:变量为浮点型,由计算得来,指去掉最高最低分的总和;
    4.变量i j n:变量为整型,由赋值得来,用于限制循环次数。

    数据处理:

    1.表达式:赋值表达式,算数表达式,关系表达式。
    2.流程结构:定义变量,for循环赋值变量,for循环嵌套和if-else判断进行大小排序,计算结果,输出结果。

    1.2.3PTA提交列表及说明

    • Q1:一开始不知道应该如何找出最大最小值。
    • A1:后来知道可以在比较大小后,通过一个中间值将前后两个数换位置。
    • Q2:不知道如何将提取出最大最小值的数组求和。
    • A2:在第一个问题解决后,这个问题也迎面而解,虽然有点简单粗暴。

    1.3最值交换 (20分)

    输入8个整数放到数组a中,将其中最小数与a[0]交换。

    1.3.1实验代码截图

    1.3.2数据处理:

    数据表达:

    1.变量a[8]:变量为整型,由输入得来,用于存储八个整数;
    2.变量b:变量为整型,由赋值得来,用于替换最小数的数组下标;
    3.变量min:变量为整型,由赋值得来,用于寻找真正的最小数;
    4.变量i:变量为整型,由赋值得来,用于限制循环次数;
    5.变量t:变量为整型,由赋值得来,作为中间值暂时存储数据。

    数据处理:

    1.表达式:赋值表达式,算数表达式,关系表达式。
    2.流程结构:定义变量,for循环输入赋值变量,for循环套if-else找出最小值,将第一位与最小数换位置,for循环输出换序数组。

    1.3.3PTA提交列表及说明


    Q1.不知道如何将第一位与最小位交换数据,因为不知道最小位到底是在八位中的第几位。
    A1.后来通过询问学长,知道可以先定义一个最小值,然后一个一个的比较,将最小值存在min中,这个数原本的下标存在t中,这样就可以直接将第一位与最小值换位置了。
    Q2.不知道如何输出数组
    A2.后来知道可以用for循环一个一个的输出数组中的数。

    2.阅读代码(-5——5分)

    #include<stdio.h>
    int main(void)
    {
        int a;
        int n;
        char c;
        int sum=1;
        scanf("%d %c",&n,&c);
        int i=1;
        while(sum<=n){
            sum+=4*i+2;
            if (sum<=n)
                i++;
        }
        a=2*i-1;
        for (int x=1;x<=a;x++){
            for(int y=1;y<=a;y++){
                if((y+x<=a+1&&x<=y)||(y+x>=a+1&&x>=y)){
                    printf("%c",c);
                }
                else if(x>y&&x+y<a+1){
                    printf(" ");
                }
            }
            printf("\n");
        }
        printf("%d",n-sum+4*i+2);
    
        return 0;
    }
    

    我所选的是一位同学的沙漏题代码,这道题运用了线性变换,与我当初所想的两个双for循环相比简单了许多,也运用到了数学知识。以后写题可以多使用数学知识,可以使代码变得更简洁精炼,并且能更快速的解决问题。

    3.学习总结(15分)

    3.1学习进度条(5分)

    周/日期 这周所花时间 代码行 学到的知识点简介 目前比较困惑的问题
    第八周 30小时 600 基础知识,输入输出函数if-else语句
    第九周 30小时 700 for循环,while循环,switch语句,数组 怎样用数组打出金字塔和蛇形数组
    第十周 30小时 500 二维数组的使用

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

    3.3学习感悟(5分)

    本周一进行了一个小测试,发现自己学的知识还是不牢固,刷题并没有巩固我的知识,证明刷题的方法错了。不能光靠刷题,还应该多看看书,补充基本知识。

  • 相关阅读:
    linux进程调度(zz)
    为什么vfork的子进程里用return,整个程序会挂掉,而且exit不会(zz)
    ubuntu安装samba
    【前端知乎系列】ArrayBuffer 和 Blob 对象
    【Web技术】442- 关于图片懒加载的几种方案
    【Web技术】441- 蚂蚁前端研发最佳实践
    【面试题】440- 10 道 Nodejs EventLoop 和事件相关面试题
    【面试题】439- 这是一道网红面试题
    【Web技术】438- 移动端体验优化经验总结与实践
    记 · 寒风依旧 · 虎跑路和人生路
  • 原文地址:https://www.cnblogs.com/czy020719/p/13933495.html
Copyright © 2011-2022 走看看