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> 的知识
C语言--第五次作业--指针的更多相关文章
- c语言第五次作业-指针-总结博客
		本次作业亮点 1.1整体情况 本次作业主要是对上次的大作业利用指针进行改进,但是大部分同学并没有很好按照老师的要求对大作业进行改进,函数的分装性也做得不够好,由于是初步学习指针,大家在本次的作业改造中 ... 
- C语言第五次作业——循环结构
		C语言程序设计第五次作业--循环结构(1) (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增 ... 
- C语言第五次作业函数
		一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ... 
- c语言第五次作业--函数
		一.PTA实验作业 题目1.使用函数输出一个整数的逆序数 1.本题PTA提交列表 2.设计思路 1.int mod,rever:分别表示余数和返回的数 2.while(number%10 || num ... 
- C语言第五次作业--数据类型
		7-2 区位码输入法: 1. 本题PTA提交列表: 2.设计思路: 1.simple定义输入数,character1和character2分别定义低字节和高字节区位码,digit存储取余后的数,sum ... 
- C语言第五次作业
		#include<stdio.h> int main() { int a,b,c; printf("请输入3个整数:"); scanf("%d %d %d&q ... 
- c语言第五次作业0
		---恢复内容开始--- (一)改错题 输出华氏摄氏温度转换表:输入两个整数lower和upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是{lower,upper},每次增加2℉.计算公式如 ... 
- 第五周作业   关于C语言的问卷调查
		你对自己的未来有什么规划?做了哪些准备? 目前还不是很了解,我希望自己再毕业后可以在一家IT公司上班. 目前效果还不是很明显,只是对于专业的学习更加勤奋而已. 2.你认为什么是学习?学习有什么用?现 ... 
- C 语言学习 第五次作业总结
		第五次作业,主要学习和复习的是几种循环结构的使用. 在前一次的课堂上,同学们已经学习了分支语句的使用.分支语句和循环语句配合使用,就可以写出更多的,逻辑功能丰富的代码了. 逻辑功能的丰富,也意味着学习 ... 
随机推荐
- 条件随机场(conditional random field,CRF)模型初探
			0. 引言 0x1:为什么会有条件随机场?它解决了什么问题? 在开始学习CRF条件随机场之前,我们需要先了解一下这个算法的来龙去脉,它是在什么情况下被提出的,是从哪个算法演进而来的,它又解决了哪些问题 ... 
- JS中如何获取JSON有多少个字段,JSON子项的个数或叫length
			如有JSON数据格式如下: {names:'张三','age':16,'sex':‘男’} 或 {names:'张三','age':16,'sex':‘男’} 如何获取JSON子键的数量?挺头疼的.使 ... 
- chrome浏览器默认打开网址并全屏
			1.创建chrome快捷方式. 2.右击快捷方式点击属性. 3.属性面板快捷方式下目标的默认内容后添加“ 页面地址 --kiosk”.[注意网页地址和--kiosk之前各有一个英文的空格] 4.点击确 ... 
- ASP.NET-SHA256加密方法
			/// <summary> /// SHA256加密 /// </summary> /// <param name="strData">< ... 
- 【Android入门】一个App学会安卓开发
			一.程序项目架构 
- 如何安装zsh,终极shell
			1,教程 教程 上知乎直接搜索终极shell也可以,话不多说,直接自己看教程吧 2,总之就是 sudo apt-get install zsh chsh ...修改设置 wget下载oh-my-zsh ... 
- 二分查找算法的java实现
			1.算法思想: 二分查找又称折半查找,它是一种效率较高的查找方法. 时间复杂度:O(nlogn) 二分算法步骤描述: ① 首先在有序序列中确定整个查找区间的中间位置 mid = ( low + ... 
- 2018-2019-2 20165231 王杨鸿永 Exp6 信息搜集与漏洞扫描
			实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 2.实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服 ... 
- python中的MySQL使用 + pickle使用
			(1)python中有一个包“sqlite3”,可以用来进行数据库相关的操作: 参考下面一个例子: import sqlite3 import pickle img_list = [('a' , 0) ... 
- 爬虫 requests模块的其他用法 抽屉网线程池回调爬取+保存实例,gihub登陆实例
			requests模块的其他用法 #通常我们在发送请求时都需要带上请求头,请求头是将自身伪装成浏览器的关键,常见的有用的请求头如下 Host Referer #大型网站通常都会根据该参数判断请求的来源 ... 
