C语言指针作业

一、PTA实验作业

题目1:6-5 判断回文字符串

1. 本题PTA提交列表

2. 设计思路

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 第一次做的时候我j直接等于count,其实j应该等于count-1,因为count是包括结束标志的字符串长度

题目2:6-10 字符串串动变化

1. 本题PTA提交列表

2. 设计思路

定义整型变量i,j,flag,字符型变量max
令max等于字符串第一个字符
i=1  until  *(p+i)!='\0'
    如果max小于*(p+i)    令max等于*(p+i)   flag等于i
    i + +
end  for
j=flag   to   1
    *(p+j)等于它的前一位
    j - -
end  for
将max赋给指针所指第一个字符

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 第二个循环j大于等于1,我漏了个等于

题目3:6-11 报数

1. 本题PTA提交列表

2. 设计思路

定义整型变量count=0,i=0,j,flag=1,t=n,定义一个整形数组a[n]用来表示游戏的人
当i小于n时
    a[i]=1;i++;
end
当t大于0时
     j=0  to  n-1
            如果a[j]等于0,跳过下一步
            count++
            如果count=3
                   令a[j]等于0,count=0,out[j]等于flag,flag自增1,t自减一
    end for
end

3.代码截图

4.本题调试过程碰到问题及PTA提交列表情况说明。

  • 可能是字符数组做多了,我一开始不知道怎么想的,把flag的值赋为0,导致每一个结果都小了1
  • 一开始我做这道题时没有思路,不知道怎么下手(写了一个陷入了死循环的代码,可惜没截图,也忘了具体步骤了),后来我百度了一下想找点思路,发现可以用数组a[n]全为1来表示游戏中的人没有退出, 如果退出了,相应的数组的值就变为0,结合这一点,做这道题就容易多了

二、截图本周题目集的PTA最后排名。

三、阅读代码

1、

  • 这是PTA上字符数组6-9的代码,功能是实现将句中所有单词的顺序颠倒输出即说反话
  • 这段代码是周四上机课欧阳同学的代码,这里使用了指针,通过指针的指向输出顺序颠倒的数组,这样会比新定义一个数组来存放颠倒后的数组更方便

2、

  • 该函数功能是查找子串在主串第一次出现的地址
  • 代码优点是把主串或子串为空的情况考虑进去了

四、本周学习总结

一、学到的知识

1、结构体的运用

1、定义一个结构体
  • struct 结构名 {
    类型名 结构成员名1;
    类型名 结构成员名2;
    类型名 结构成员名3;
    ······
    };
    !!!最后面的分号不能忘
2、结构变量初始化
  • 在定义时对其赋值
    如:struct student s1={101,"zhang",78,87,85};
3、结构变量成员的引用
  • 格式为:结构变量名 . 结构成员名(.为结构成员操作符)
4、结构变量做函数参数的优缺点
  • 优点:可以传递多个数据且参数形式较简单
  • 缺点:对于成员多的大型结构,参数传递时所进行的数据复制使效率较低
5、结构数组
  • 定义及初始化:例如:struct student students [50]={{101,"zhang",78,87,85},{102,"wang",72,89,86}};
  • 结构成员引用:格式为:结构数组名[ 下标]. 结构成员名(依然使用结构成员操作符.)
6、结构指针
  • 指针访问结构成员:(*p).num 或 p->num 均可
  • 指针做函数参数:
7、结构体个人总结
  • 学了结构体,我感觉它就像是一个我们自己创造出来的变量,我可以像操作整型变量和字符变量那样来操作,唯一不同的就是结构成员的使用了

错题

这里的函数是没有给返回值的,我做的时候不知道在想什么,最后居然用了return,大概是没完全搞懂函数的意思吧

这里有两个错误,一个和上面一样,另一个就是我的小失误了,我没注意到下面用的是n,所以写的时候用了m(这种小失误是没认真看题的后果)

posted @ 2017-12-17 19:05  网络1711王艺斌  阅读(643)  评论(0编辑  收藏  举报