• C语言博客作业--一二维数组


    一、PTA实验作业

    题目1:7-2 求整数序列中出现次数最多的数

    1.本题PTA提交列表

    2.设计思路

    定义n存放数的个数,most存放出现次数最多的数,time存放最多次数
    输入n
    定义a[n]存放数字,aa[n]存放各数出现次数
    将数字存入数组
    for i=1 to i>n
       for j=n-i to j>n
          若a[i]=a[j] aa[i]]+1
        end
    end
    
    先令time=aa[1];most=a[1]
      for i=1 to i>n
         若aa[i]>time  time=aa[i];most=a[i];
    输出most和time
    
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 部分错误:误将每个数字出现次数都初始化为0,后来发现这样做不正确,会让出现次数少一

    题目2:7-3 出生年

    1.本题PTA提交列表

    2.设计思路

    定义year存放年份,diff存放要求不同数字个数,count存放实际不同数位=4,born存放出生年,year1也存放年份
    定义a[4]存放年份各个位数
    输入year,diff,born=year,
    for year to...
       year1=year
       for i=1 to i=5
           a[i]=year1%10;
    	year1/=10
        end
      
        for i=1 to i=5
            for j=i+1 to j=5
                 如果a[i]=a[j] count-- 跳出当前循环 end end
    
        如果count=diff跳出循环
        count=4  end
    输出年份和相差年份
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 本题无误

    题目3:7-10 杨辉三角

    1.本题PTA提交列表

    2.设计思路

    定义n存放三角的行数
    输入n
    定义a[n][n]
    for i=1 to i>n
       for j=1 to j>n
          如果i=j或j=1 a[i][j]=1
          否则 a[i][j]=a[i-1][j-1]+a[i-1][j]
          如果 j>i 跳出循环  end  end
    for i=1 to i>n
       for j=1 to j>i 
           输出a[i][j]
       end
       换行
    end
    

    3.代码截图

    4.本题调试过程碰到问题及PTA提交列表情况说明

    • 格式错误:将%-md和%md作用混淆导致输出空格在右格式错误

    二、截图本周题目集的PTA最后排名。

    三、同学代码结对互评

    陈文杰代码: 我的代码:

    评价:我的代码比他的简洁的多,但是他采用函数封装了各个功能,让他的代码结构更清晰,他的代码通篇无注释,让人不好理解,而且他对于小于10的年份输出采用了000%d,其实只要用%04d就能实现这个功能,还有他计算不同位数使用的方法太
    复杂了,可能是思路不清晰的结果,我更喜欢我的代码

    四、本周学习总结

    1.你学会了什么?

    1.1 C中如何存储字符串?

    c中采用字符型数组存储字符串
    

    1.2 字符串的结束标志是什么,为什么要结束标志?

    结束标志:
    原因:如果没有,那么在使用系统函数处理字符串的时候,函数就不能准确判断字符串在哪里结束,从而可能导致数组越界
    

    1.3 字符串输入有哪几种方法?

    三种
     - 1.使用循环结构和scanf("%c",  )语句输入
     - 2.scanf("%s",  )这种输入方法遇到空格就会中止
     - 3.gets()这种方法只有遇回车会终止,比上一种好
    

    1.4 数字字符怎么转整数,写个伪代码?

    定义字符ch存放数字字符
    输出ch-'0'
    

    1.5 16进制、二进制字符串如何转10进制?写伪代码?

    ####16进制:
       定义字符数组a[100]存储16进制字符串,result储存转化后结果
       输入a[]
       for 第一位to最后一位
          若a[]为字符0到9,result=result*16+a[k]-'0';
          若a[]为a到f或A到F,result=result*16+a[k]-'a'或'A'+10;
       end
       输出结果
    ####2进制
       定义字符数组a[100]存储16进制字符串,result储存转化后结果
       输入a[]
       for 第一位to最后一位
          若a[]为字符0或1,result=result*2+a[k]-'0';
       end
       输出结果
    

    2.本周的内容,你还不会什么?

    这题第一个空是要判断对角线两侧是否相同,然后根据fond变量判断是否对称矩阵,一开始没有看懂程序,导致思路混乱才错误
    pta的题目有几题会出现段错误,百度后知道是数组越界的问题

    3.期中考试小结

    3.1 你认为为什么没考好?

    • 对时间把握的不够好,导致后面编程题和改错题时间不足,但这也看出我对基础知识掌握的不够好,所以做题较慢
    • 在纸面上写代码很不适应,过度依赖编译器
    • 考前没有做好复习工作

    3.2 罗列错题。

    选择题第六题我的问题问题主要是b,c两项现在知道逻辑运算符可以这么用,c选项少个分号,我以为考试应该不会考这种错误。。。。
    填空题第九空忘记了要乘1.0才能使结果变为小数
    编程题第三大题阶乘没写出来很不应该,因为写到最后,没有时间,太慌乱了,结果没做出来

    3.3 下半学期要怎么调整C的学习?

    • 不应该只做pta的题目,多在纸上写代码,多看别人的代码,作业认真完成
  • 相关阅读:
    Scrum会议5
    小组项目alpha发布的评价
    第二阶段冲刺记录三
    第二阶段冲刺记录二
    第13周学习进度
    第二阶段冲刺记录1
    《人月神话》阅读笔记01
    第12周学习进度
    意见汇总
    双人结对,四则运算(三阶段)
  • 原文地址:https://www.cnblogs.com/Airoure/p/7943960.html
Copyright © 2020-2023  润新知