码迷,mamicode.com
首页 > 其他好文 > 详细

C博客作业--指针

时间:2017-12-17 22:21:14      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:内容   --   class   这一   倒序输出   blog   实验   概念   注意   

一、PTA实验作业

题目1.求出数组中最大数和次最大数

1.本题PTA提交列表

技术分享图片

2.设计思路

定义最大数max,次最大数max2,中间变量t,p
          赋初值max=0,max2=1
               for i=0 to i<10
               如果a[i]>a[max],max=i
               利用中间变量t交换位置
               for i=1 to i<10
               如果a[i]>a[max2],max2=i
               利用中间变量p交换位置

3.代码截图

技术分享图片

4.本题调试过程碰到问题及解决办法

没有把max,max2赋初值,导致答案错误,后来问室友解决了

题目2. 统计大于等于平均分人数

1.本题PTA提交列表

技术分享图片

2.设计思路

    定义循环变量i,统计人数count,成绩总和sum
    for i=0 to i<=n
        sum+=s[i];
        *aver=sum/n;
end 
    for i=0 to i<=n
        遍历数组,如果*aver<s[i] ,count++;
end
    返回count

3.代码截图

技术分享图片

4.本题调试过程碰到问题及解决办法

由于粗心开始把sum定义成了整型,以后会注意这方面问题

题目3输入月份英文名

1.本题PTA提交列表

技术分享图片

2.设计思路

switch(n){
如果n为1 返回英文一月 end
如果n为2 返回英文二月 end
如果n为3 返回英文三月 end
以此类推 直到n为12
如果n不是一个代表月份的数字 返回空指针NULL
}

3.代码截图

技术分享图片

4.本题调试过程碰到问题及解决办法

漏掉了不是月份数字的情况,再看一遍就发现了

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

技术分享图片

三、阅读代码

代码一

void fun(char *p){
int i,j,flag;//flag存放最大值下标
char item;
char max=‘a‘;
for(i=0;p[i]!=‘\0‘;i++){
    if(p[i]>max) {
        max=p[i];
        flag=i;//记下最大值下标
    }
}
item=max;
for(i=flag;i>0;i--){//从p[flag]倒着遍历
    p[i]=p[i-1];//后移一位
}
p[0]=item;
}

周炳辉同学的代码采用了反向遍历的方法,把p数组倒着数,以后在做倒序输出的题目时可以尝试一下这种做法

代码二

技术分享图片
吴军霖同学的代码用do-while循环查找字符串内还有没有未删除的子串,遇到相同的字母,继续判断后面的字母是否相同,代码简洁,十分巧妙。

四、学习总结

1.自己总结本周学习内容。

这周通过做PTA的题目,对指针这一章的内容开始慢慢掌握了,但是还是有一些概念比较模糊,在处理字符串方面的问题时,指针可以高效快速的处理,所以不懂得地方,还要继续看书做题来完善。

2 罗列错题。

技术分享图片
指针数组不能直接偏移,我的选择错误,答案应该为D
技术分享图片

C博客作业--指针

标签:内容   --   class   这一   倒序输出   blog   实验   概念   注意   

原文地址:http://www.cnblogs.com/yangwent/p/8052941.html

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