码迷,mamicode.com
首页 > 编程语言 > 详细

C语言博客05--指针

时间:2018-12-17 23:51:14      阅读:326      评论:0      收藏:0      [点我收藏+]

标签:使用   算法分析   介绍   资料   运用   技术分享   null   处理   伪代码   

1.本章学习总结

1.1 思维导图

技术分享图片

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

1.2.1 学习体会

在本周指针的学习中,遇到了很多难点,运用起来很不熟练。比如说:

- 当指针指向一个数组的时候,该如何控制指针指向的地方。int a【10】,*p=a。此时指针指向数组的第一个元素。
- 如何用指针来调换两个数组的数据:先初始化m,n的值
char *p1=a[n], *p2=b[m],p3;
if(*p1!=‘\0’&&*p1!=‘\0’)
{
p3=*p1;
*p1=*p2;
*p2=p3;
p1++;p2++;}
在之后的内容学习中一定要先有较为扎实的基础知识才能更好地习得高等知识,要多多加油!

1.2.2 代码累计

技术分享图片

2.PTA总分

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

技术分享图片

2.2 我的总分:

指针 --- 110分(满分)

3.PTA实验作业

3.1 PTA题目1

题目一:编写一个解密藏尾诗的程序。

算法分析:

   char *p,str[20],record[10];   定义字符型指针,两个字符型数组 
   int i,n;                      定义整形变量 
   record[0]=0;                  初始化一个字符型数组来存放最后结果 
   for(i=0;i<=3;i++) gets(str)   题目中明说有四句话,循环输入四次 
       n=strlen(str);            求出输入的长度 
       p = str; p=p+n-2;         读取最后一个字符(文字),因为一个汉字占两个字节,因此减二 
       strcat(record,p);         复制到结果数组中    end for 
        puts(record);            按要求输出藏尾诗 

3.1.2 代码截图

技术分享图片

3.1.3 PTA提交列表及说明

技术分享图片

了解如何使控制指针指向指定位置,然后注意好字节的控制,最后进行输出。

4.大作业

4.1.改造函数介绍

改进内容:

1.构造字符数组存放算术表达式

伪代码分析:

    int num1,num[5];                    定义 整形变量num1 和 数组num 
    srand(time(NULL));                  给随机数的产生存放种子 
    int number = pow(10,(level));       根据等级产生数字10的n次方 
    char op[3],a;                       定义字符型数组op 和 变量a 
    for(int i = 0;i<3;i ++)
num1 = rand() % number; num[i] = num1;  产生随机数并记录到数组中 
    int t = rand() % 2;                 随机产生一个数字,随机生成运算符 
        if (t == 0) a = '+';
        else if (t == 1) a = '-';
        op[i] = a;                      记录运算符 
                              end  for 
    if(level == 1)
    {
        int t = rand() % 4;             等级为一的时候有+-*/,随机产生 
        if (t == 0) a = '+';
        else if (t == 1) a = '-';
        else if (t == 2) a = '*';
        else if (t == 3) a = '/';       end  if; 
        sprintf(exp,"%d%c%d=",num[0],a,num[1]);         将算式的地址记录到指针里 
    }
    if(level > 1)                                       二级或三级产生三个数字的加减法 
        sprintf(exp,"%d%c%d%c%d=",num[0],op[0],num[1],op[1],num[2]);
                end 

代码截图:

技术分享图片

技术分享图片

2.判断表达式是否合法

伪代码分析:

      if(a == '/')          a为全局变量 
      {
        if(exp[2] == '0')   只有在除法运算中才会出现非法运算 
            return 0;       被除数为零,return 0; 
        if((exp[0]-'0') / (exp[2]-'0') == 1)
            return 0;       除不尽时,返回0 
      }
      return 1;             其他情况,视为成立。return 1
                  end 

代码截图:

技术分享图片

3.根据字符表达式,能计算其结果。

伪代码分析:

代码截图:

4.3 与原有函数代码比较

以前的代码是一个函数覆盖了创造算式、判断算式是否合理、判断答案正误、输出正答率等功能,比较繁琐(功能比较强大。。。),也就导致了灵活性趋近于zero;因此在这次大作业中,不得不对它进行大手术。现在的代码,作用明显且单一,具有客观的灵活性,易变通。

4.4 改进大作业总结

- 上一次的大作业难点在于怎么去制造随机数和时间处理上,还有第一次写,没有较好的控面能力,不能很好地把介绍语言、提示语言、画面整洁度提供给使用者。经过了一次的尝试,听了老师和同学的讲解后对于这些内容已经初具模型,萌发出了自己的想法,期冀这次可以做得更好!
- 这一次的大作业要使用指针来记录字符数组的地址,进行存放算式。不能熟练地使用指针,因此在各个部分都有知识盲点存在(猛.虎.落.泪.),通过不断地查询资料,观看视频,询问同学来慢慢改进代码!
- 注意事项:在以后的代码编写时,函数过多时一定要分开编写,否则很难调试;

C语言博客05--指针

标签:使用   算法分析   介绍   资料   运用   技术分享   null   处理   伪代码   

原文地址:https://www.cnblogs.com/yue7521/p/10134372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!