• C语言作业04-数组


    1.本章学习总结

    1.1思维导图

    1.2本章学习体会及代码量学习体会

    1.2.1学习体会

    通过本章的学习,学会了几种用于循环的语句,能够利用循环解决复杂的问题,但对于几种循环的使用并不熟练,其中对于continue和break语句的理解欠缺,有时候不能正确选择,同时感觉作业量剧增,作业难度也很大,做题速度方面有很大欠缺,对于有些循环,甄别有的特殊情况总是忽略忘记,多种循环的嵌套也不能得心应手。在做每个pta题目时总是反复更改很多次,对解题思路没有明确的想法,对解题时间也难以把握,对于字符方面还是不熟练。

    1.2.2代码量累计

    2.PTA总分

    2.1截图PTA中循环结构2次题目集的排名得分

    2.2我的总分

    循环结构(单层):175
    嵌套的循环:15
    总分:190

    3.PTA实验作业

    3.1PTA题目一

    输入一组二进制字符,输出其对应的十进制数。当输入回车键时,输入结束。若输入非二进制字符,输出error input!

    3.1.1算法分析

    • 定义字符ch,整形变量sum存放结果,整型变量flag用于辅助判断。
    • sum=0,flag=0;
    • while(ch!=' ')//回车作为结束的标志
    • switch(ch)//当输入新二进制字符十进制数*2+字符实现二进制转十进制;
    • default ch=‘/n’ //当输入非二进制输出error input!并结束循环;
    • if(flag==0) printf("%d",sum)//输入非法字符时不输出sum;

    3.1.2代码截图

    3.1.3测试数据

    3.1.4PTA提交列表及说明

    • Q1:不知道二进制数与十进制数字之间的简单连接关系;

    • A1:通过在草稿纸上写几组数找到规律;

    • Q2:不知道输入非法字符时怎样结束循环并避免输出sum;

    • A2:采用flag进行判断;

    • Q3:开始输入等号会输出sum且值为0;

    • A3:对特殊情况区别对待,单独判断;

    3.2PTA题目二

    计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。

    3.2.1算法分析

    • 定义字符存放运算符,定义sum存放运算结果,num存放第一个数字,flag辅助判断;
    • if(op=='=')break;输入等号直接结束循环;
    • switch(op)//判断运算类型 ,进行对应运算;
    • if(num==0)//分母为零,输出错误结束循环,flag确保不输出sum;
    • default://非法数据 ,输出错误结束循环,flag确保不输出sum;
    • if(flag==0)//判断是否输出sum ,printf("%d",sum);运算正常输出运算结果;

    3.2.2代码截图

    3.2.3测试数据

    3.2.4PTA提交列表及说明

    • Q1:当分母为零时会输出sum;
    • A1:用flag进行判断是否输出;
    • Q2:程序无法编译;
    • A2:字符=忘记加单引号;
    • Q3:输入测试数据无法运算;
    • A3:未按照题目要求输入等于号;

    3.3PTA题目三

    对任意给定的一位正整数N,输出从11到NN的部分口诀表。输入在一行中给出一个正整数N(1≤N≤9),输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

    3.3.1算法分析

    • 定义i,,j用于循环条件,N用于确定输出行数;
    • for(i=1;i<=N;i++)后面数字的循环;
    • for(j=1;j<=i;j++)前面数字循环;
    • printf("%d%d=%-4d",j,i,ij);数字相乘并输出;
    • printf(" ");输完一行进入下一行;

    3.3.2代码截图

    3.3.3测试数据

    3.3.4PTA提交列表及说明

    • Q1:不知道如何换行;
    • A1:调试得知第一个循环控制第一个数,当其运行一个周期进行换行;

    4.代码互评

    4.1代码截图

    • 同学代码:

    • 自己代码:

    4.2代码异同

    • 相同点
      1.对二进制转十进制思路都相同;
      2.循环条件相同;
    • 不同点
      1.自己的代码像是拼凑出来的,同学的代码将错误字符结合到循环外,简化了代码,使运算更简洁;
      2.对循环的条件判断,同学的更加具有概括性;
  • 相关阅读:
    BZOJ 1562 [NOI2009] 变换序列
    BZOJ 2535:NOI 2010 航空管制
    C++ 莫队算法(转)
    SDOI2013直径(树的直径)
    c++分块算法(暴力数据结构)
    洛谷题解 P2865 【[USACO06NOV]路障Roadblocks】
    c++最短路经典问题
    LOJ#10065. 「一本通 3.1 例 2」北极通讯网络
    最小生成树(kruscal算法)
    飞屋环游记
  • 原文地址:https://www.cnblogs.com/ljw999/p/9866166.html
Copyright © 2020-2023  润新知