c语言博客作业05--指针

1.本章学习总结

1.1 思维导图

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

1.2.1 学习体会

    在这段时间学习中,我接触了指针,虽然知道指针是c的灵魂,会很难,但是开始学习就有点懵了,尤其是感觉到老师节奏加快了。
    在指针的调用还是挺迷茫的,不知道什么时候要用指针,而且指针的题目很多用数组也可以解决,这就让我更加不懂指针该怎么用啦。

1.2.2 代码累计

2.PTA总分

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

2.2 我的总分:125

3.PTA实验作业

3.1 PTA题目1

    给定程序中函数fun的功能是:求出在字符串中最后一次出现的子字符串的地址,通过函数值返回,
  在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。

3.1.1 算法分析

    首先main函数传了两个地址到fun函数中
    所以fun函数要做的就是比较两个地址的内容
    --定义*p=t,*m;//定义两个指针,flag=0,sign=0;
    --while(*s)遍历*s
    -----if(*s等于*t)
    ---------while(*t)遍历*t
    -----------如果与*s相同就记住该地址
    ---------end  while
    ----end if
    ----判断输出

3.1.2 代码截图


3.1.4 PTA提交列表及说明

    A:虽然提交全是对的,私底下在dev调试了好久,主要是在比较和遍历的时候会出问题
    Q:通过调试慢慢思考,慢慢调试出答案

4.大作业

4.1.改造函数介绍

4.1.1.函数1

    begin://以防输入非法字符,可以重新输入
    定义  i=0,j,answer;
    字符数组“+-*/”
    if level=1 then
        生成一步一位数加减乘除计算式,并储存
        end if
    else if level==2 or  level==3 then
        生成两步2/3位加减计算式,并储存
        end if
    if  strlen(exp)==3  then//判断是否可以整除,不可以则重新生成表达式
            if  !IsExp(exp)   then  goto begin  end if
    end if


4.1.2.函数2

    作用是来判断除法和减法的错误
    if 前一个数不能整除后一个数 then
        flag=0
    end if
    if 当运算符为-或/且前一个数小于后一个数时 then
        flag=0
    end if

4.1.3.函数3

    定义 m,sum=0,i,answer;
    char oldc='+';
    if  strlen(exp)==3  then//如果是第一级别的情况
    ---if  +  then  answer=前面的数+后面的数  end if
    ---else if  -  then  answer=前面的数-后面的数  end if
    ---else if  *  then  answer=前面的数*后面的数  end if
    ---else if  /  then  answer=前面的数/后面的数  end if
    end if
    else//如果是第二,三级别的情况
    ---for  i=0  to  strlen(exp)
    -------if  字符在0到9之间  then
    -----------m=10*m+(*(exp+i)-'0');//求每个数的数值
    -------end if
    -------else //字符不在0到9之间  
    -----------if  oldc=='+'  then  sum=sum+m;   end if
    -----------else  sum=sum-m;  end else
    -----------m=0;
    -----------oldc=*(exp+i)
    ------end else
    --end for
    --answer=sum;
    end else
    return answer

4.3 与原有函数代码比较

    原来的代码:



    两者不同在于函数的运用和指针的运用,还有就是数组,运用了这些后使得代码更加简洁明了
    原来的代码很长而且很杂乱,用了指针一些全局变量就可以去掉了,使得代码的全局变量减少
    也减少了一些失误的发生;当然,用了指针可以使得代码的延展性加强,以后修改可以更加方便

4.4 改进大作业总结

    第一次写大作业的时候感觉很难,并不知道如何下手,万事开头难,总算写完了第一次的大作业,
    而这次修改的难度比上次还大,因为指针学的并不清晰,弄得自己弄代码的时候一直出错,还改不过来
    最后只要求助其他同学。
    但是通过这次大作业,可以加深我对函数的理解,在之后拓展的时候只要修改小部分在加上定义新函数就可以
posted @ 2018-12-14 16:30  白白以桃花入笺  阅读(250)  评论(1编辑  收藏  举报