zoukankan      html  css  js  c++  java
  • C语言--第五次作业--指针

    1.本章学习总结

    1.1 思维导图

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

    1.2.1学习体会

    没想到都已经学习完C语言的灵魂—指针的内容了(当然也是C里面最难学习的内容了)。虽然在之前就有听学习进度比较快的同学大概介绍过指针,不过那时候是仅限于知道这个是一个特好用的东西,不过开始学习就懵逼了,上课听老师讲课只知道这个指针指向那个地址又对应哪一个内容,emmmm(自闭了)在经过一段时间学习指针后,。
    在指针的调用还有它指向什么内容还是不是很掌握。数组和字符串和指针之间的联系,比如各元素的地址与数组名及数组名与首地址的对应关系,以及指针在数组、字符串中的储存方式,还有就是发现指针可以处理动态内存的分配问题,并且指针传递的是地址,这样可以大大节省计算机的储存空间和运行成本,反正感觉好处多多,不过要学好必须要下大功夫就是了。

    1.2.2代码累计

    2.PTA总分

    2.1截图PTA中函数得分及排名

    • 函数总分: 100分

    3.PTA实验作业

    3.1PTA题目1

    3.1.1算法分析

    - 定义循环变量i,数组长度替代量n
    - char *a=s,n=s数组长度-1
    - for(i=0到n)同时数组首尾分别往后往前推进
    - 在循环内,if(*(s+i)!=*(a+n)),break
    - 循环外,if(i>n) return true
    - else return false
    

    3.1.2 代码截图

    3.1.3 PTA提交列表及说明


    Q1:一开始看到题目马上就想到之前在数组也做过类似的的会问题,所以一开始就按照首尾递进比较的方法来解决
    A1:但是发现用并不能像数组那样直观,在devc++上面调,结果输出都是对的,可是改来改去还是有两个点卡着
    A2:一是删减了定义的多余指针变量,二是对循环条件进行了调整

    4.大作业

    在函数那章,我们已经实现小学四则运算这份作业,现在要求大家把之前设计函数升级改造,原来的函数大家都是用全局变量实现不同函数参数传递,这次作业要求改地址传递,减少全局变量的使用。

    4.1改造函数介绍

    1.函数1

    • 伪代码介绍函数思路
    - int 计数替代量num,int 循环变量i,int 运算符选择变量op
    - 定义字符数组str
    - if(level==1),i=3,
            while(i--)
             if(i%2==1) op取随机数代表四种运算符
                 switch(op)
                     case(0到3)将运算符在exp运算式子后连接起来
                  else num=rand()%9+1
                          将整型变量num转化为字符型变量存入数组str中
                          将str数组中的字符串在exp运算式子后连接起来
    - else if(level=2或3 )i=5
          while(i--)
          if(i%2) 
                 switch(level)
                     case(2到3)num=rand()%90+10||rand()%900+100;break;
                                        将整型变量num转化为字符型变量存入数组str中
                                        将str数组中的字符串在exp运算式子后连接起来
           else op=rand()%2
                   switch(op)
                         case(0到1)将运算符在exp运算式子后连接起来
                               将‘=’exp运算式子后连接起来
    
    
    • 截图函数代码

    2.函数2

    3.函数3

    • 伪代码介绍函数思路
    - int m=0,sum=0,i=0;char c,char old='+'
    - do
    {
            c = exp从第一个开始
            if(c<='9'&&c>='0') 
                m 将字符型数字转化为整型数字
            else 
            {
                if(oldc=='+'||'-'||‘*’||‘/’)
                    sum '+'||'-'||‘*’||‘/’= m;
               m=0
               oldc=c
            }
            i++;
     } while(c不等于'='的时候)end
      返回 sum的结果;
    
    
    • 截图函数代码

    4.2 与原有函数代码比较






    Q: 改造前函数和改造后的函数的不同及区别,优缺点。
    A:原先我式把三个等级分开来卸,各自独自取随机数,独自运算,每次num循环,调用一次就可以得到一个随机计算式子,每一次独立输出就好了,这一次不能用全局变量,改用指针传参。没改全,实际上改完后我的程序运行结果问题多多,还没改好,不过也就把这个贴上来了,至于说选做的那个IsExp函数没有能实现

    4.4 改进大作业总结

    两次作业编写过程,总结碰到问题及后续程序编写注意事项

    • 说实话这次要求用指针加函数的写法改进大作业我是懵逼的,因为指针用法不熟悉,所以有一种无从下手无从下手的感觉,改了许多天,没有进展,参照林丽老师的博客5的computerExp函数的写法,依葫芦画瓢倒是写出来了第三个函数,可是第一个函数怎么弄还是梦梦的,于是请教了同学,也从老师推荐的曾俊韦同学那里学到了itoa(num,str,10)函数可以直接实现遗传整形转化为字符串,头文件#include<string.h> 的知识
  • 相关阅读:
    Android App性能评测分析-耗电量
    Android App性能评测分析-CPU渲染
    APP性能测试_响应
    Android开发03
    javaweb-request与response(未处理)
    javaweb-cookie&session(未处理)
    Android开发02
    eclipse中工作集的创建,简化项目组分类
    Android开发01
    javaweb-JDBC(转发)
  • 原文地址:https://www.cnblogs.com/asings/p/10128803.html
Copyright © 2011-2022 走看看