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 改进大做业总结

第一次写大做业的时候感受很难,并不知道如何下手,万事开头难,总算写完了第一次的大做业,
而此次修改的难度比上次还大,由于指针学的并不清晰,弄得本身弄代码的时候一直出错,还改不过来
最后只要求助其余同窗。
可是经过此次大做业,能够加深我对函数的理解,在以后拓展的时候只要修改小部分在加上定义新函数就能够
相关文章
相关标签/搜索