代码改变世界

C语言博客05--指针

2018-12-17 17:27  HappyBoy~  阅读(351)  评论(1编辑  收藏  举报

1.本章学习总结(2分)

1.1 思维导图

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

1.2.1 学习体会

1.经过这次的学习使我对指针有了更深刻的了解和认识。
2.知道了指针是C的灵魂,它可以运算,可以初始化,可以实现内存动态分配等等
3.当然,它比之前学的都难。。。。

1.2.2 代码累计

2.PTA总分(2分)

2.1截图PTA中函数题目集的排名得分

2.2 我的总分:20分

3.PTA实验作业(1分)

3.1 PTA题目1

6-2 判断回文字符串 (20 分)

本题要求编写函数,判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

3.1.1 算法分析

由字符型char定义指针变量 s。
int定义n=strlen(s),i, j和count=0。
由for实现i的递增和j的递减
if 判断(
(s + i) == *(s + j))

3.1.2 代码截图

3.1.4 PTA提交列表及说明


Q1:i和j的循环用while
A1:i和j的循环用for去实现
Q2:很多次编译错误
A2:给同学看了之后菜农明白

4.大作业(5分)

题目:实现小学四则运算。
题目要求:
题目有2个难度级别,分别为:
第一级难度是1位数的一步加运算
第二级难度是1位数的乘法运算
题目:实现小学四则运算。

4.1.改造函数介绍

说明:函数1构造字符数组存放算数表达式;函数2计算出表达式的结果;

1.函数1

思路:生成相应的随机数和随机运算符并依次赋给exp字符数组,最后输出字符数组。
(注:其中穿插不合法情况的判断,使生成的表达式中不含不合法的表达式)

函数伪代码

用int定义 count,topic1(1级难度),用来储存结果和1级难度和2级难度的链接。
int定义的x1,x2和y,y1。x1,x2时计算所需的元素,是开发者给出的数字。 y,y1分别是结果和储存结果,是顾客给出的答案。

2.函数2

判断不和法的情况已经包含在函数1中并进行了相应的注释。

3.函数3

思路:用数学函数,将1级难度的题由判断式的形式得出结论,对了,进行2级难度的题。错了有答案提示。
然后再将2级难度的题由判断式的形式得出结论,对了就结束。错了有答案提示。
函数伪代码
int ComputeExp(char exp,int level)
定义整型变量n1,n2于循环
定义len,将exp数组长度的值赋给len
定义result用于存放表达式计算结果
定义m1,m=20时时说明是第一个运算符出现的情况
定义字符变量ch暂时存放运算符
int topic2;//2级难度
int n1,n2;
int m,m1;
printf("请输入正确答案!\n");
printf("4
5=");
错了就输出so bad!

函数代码

4.2 与原有函数代码比较

1.新增了int ComputeExp(char *exp,int level)

2.原来的代码和现在的代码思路都比较混乱。

4.3 改进大作业总结

1.代码行数减少了一百行左右,由三百多行减少到两百多行;可以简化很多代码,与前期改进之前相比较代码量更少了。
2.要使用指针来记录字符数组的地址,进行存放算式。而这个环节就是最难的。
3.以前的代码是判断算式是否合理、判断答案正误、输出正答率等功能,而现在的更灵活一些。
4.到了三级难度是就不会继续写下去,不知道该怎么连接。

大作业运行结果展示