zoukankan      html  css  js  c++  java
  • C语言博客作业04--数组

    1.本章学习总结

    1.1思维导图

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

    1.2.1学习体会

    本章内容较之前的学习的内容要难,在PTA的题目更多,思考量大,对逻辑思维能力的要求也更高,如果平时代码量小了,到考试的时候真的会很生疏。在做作业的过程中,要注意记住一些解题的方法,这会在以后给自己省下很多时间,不会的就上百度查,然后记住。不然等到最后会发现时间花太多到最后还是做不好。还有,在写代码的时候,变量的命名要多留意,要起的有技术含量一点,并应该合理运用注释。今后要尽量在自己的代码中用上函数,让代码更加清晰。

    1.2.2代码累计


    2.PTA总分

    2.1截图



    2.2我的总分

    335


    3.PTA实验作业

    3.1PTA题目一

    本题要求统计一个整型序列中出现次数最多的整数及其出现次数。

    3.1.1算法分析

    定义N与整形数组a
    输入数组a
    for i=0 to N do
            flag=m;
            m=0;
            for j=i to 0 do 
                    if a[i]==a[j] then m++;
                    end if
            if m>flag then
                    次数为m;
                    出现次数最多的整数num=a[i];
            end if
    输出 num time;
    
    

    3.1.2代码截图

    3.1.3PTA提交列表及说明

    • Q1 刚开始是将输入数字作为元素下标,输入该数字时,相应的元素大小加一。最后比较元素大小。但是这种做法在pta中有个测试点一直过不去。怎么改范围都不对。问了老师,说是范围越界,这种方法应该不行。

    • A1 最后换了方法:计算每个数出现的次数,然后比较。最后对了。

    3.2PTA题目二

    一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
    本题要求编写程序,求一个给定的n阶方阵的鞍点。

    3.2.1算法分析

    定义 n,hang,lie
    定义整形数组a
    输入n;
            for i=0 to n-1 do
                    max=a[i][0]
                    for j=0 to n-1 do
                            if a[i][j] 大等于 max then
                            lie=j;
                            end if
                    min=a[0][lie];
                    for k=0 to n-1 do
                            if a[k][lie] 小等于 min then
                            hang=k;
                            end if
                    if min等于max then 
                    输出hang和lie,结束循环
            if i>=n then 输出NONE
    end
    
    

    3.2.2代码截图

    3.2.3PTA提交列表及说明

    • Q1 第一次编写的时候,把行的最大值和列的最小值分开求了。

    • A1 改为先求一行中的最大值,再在相应的列中找最小值。

    • Q2 循环的嵌套的两个条件写反了,把行和列搞反了。

    • A2 理清思路重新改了过来。

    • Q3 冒泡法的使用混乱。

    • A2 通过上网查询弄清楚了。

    3.3PTA题目三

    输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。

    3.3.1算法分析

    定义两个字符数组str,a,定义geshi,flag
    定义Decnum
    gets(str)
    geshu=strlen(str);
    for i=0 to geshu-1 do
        if str[i]是数字字符 || str[i]是大写字母字符 || str[i]是小写字母字符 then 
            a[j]=str[i];
            j++;
        end if
        if j==0 且 str[i]等于'-' then flag=1;
    for i=j-1 to i>=0 do
        if a[i]是大写字母字符 then Decnum=Decnum+(a[i]-55)*pow(16,j-1-i);
        else if a[i] 是小写字母字符 then Decnum=Decnum+(a[i]-87)*pow(16,j-1-i);
        else Decnum=Decnum+(a[i]-'0')*pow(16,j-1-i);
    if flag==1 then Decnum=(-1)*Decnum;
    printf("%d",Decnum);
    end
        
    

    3.3.2代码截图

    3.3.3PTA提交列表及说明

    • Q1 刚开始想这道题目的时候没有头绪,不知道怎么计算字符个数

    • A1 后来经提醒,知道了可以用strlen函数。

    • Q2 在小写字符的转化这块卡了很久,一直不知道怎么会转化错误。

    • A2 百度后了也找不到错误元因,后来把它前面的if语句改成else if再放到后面就行了。


    4.代码互评

    4.1代码截图

    • 同学
    • 自己

    4.2二者的异同

    • 1.同学的思路是设定打印一圈为一个循环,循环次数是n/2+1,因为n为奇数个时,中间正好是镂空,另行补充。我的思路是向左,向下打印和向右,向上打印交错进行,循环次数刚好是N。
    • 2.对方的代码比我的简洁很多,条理清晰,可读性强。而自己的代码在编辑的过程中容易出错。
    • 3.对方的代码运行速度应该也比我的快。
  • 相关阅读:
    Lucene学习
    json-lib转化java对象,是否转化为null的属性
    maven项目导入war包
    服务器运维管理
    [ jquery 效果 delay(duration,[queueName]) ] 此方法用于对队列中的下一项的执行设置延迟
    [ jquery 效果 stop(stopAll,goToEnd) ] 此方法用于停止所有在指定元素上正在运行的动画,如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行
    [ css 过渡 transition ] transition新增过渡属性的实例演示
    [ css 动画 animation ] animation新增动画属性的实例演示
    [ css 过渡和动画 transition animation ] 过渡和动画听课笔记记录
    [ jquery 效果 animate(opation[speed,[easing],[fn]]) ] 此方法用于通过自定义调整目标的变化至指定目标来实现所有匹配元素的效果,并在动画完成后可选地触发一个回调函数
  • 原文地址:https://www.cnblogs.com/chianun2000/p/10089559.html
Copyright © 2011-2022 走看看