C博客作业--指针

一、PTA实验作业

题目1:6-2 求出数组中最大数和次最大数

1.本题PTA提交列表

1232142-20171215090606857-183417717.png

2. 设计思路

定义max=0表示最大值,p,q用来互换数值,k,t用来存放最大值和次大值的下标
 for I=0  to I<n
   遍历数组,若*(a+i)>=max)
         max等于*(a+i)
             end for
                t存放最大值的下标值
 将最大值与数组第一个数互换
        max重新赋值为0;
    for j=1 to j<n  //寻找次大值,不用比较第一个数,既次大值为最大值
         遍历数组,若*(a+j)>=max)
         max等于*(a+j)
            end for
                k存放次大值的下标值
 将最大值与数组第二个数互换

3.代码截图

1232142-20171215092145888-845491669.png

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

  • 本题没有遇到问题,提交一遍就过了,然后想换看看有没有更容易简洁的代码,但怎么改好像差不多都这样吧

    题目2:6-4 找最大值及其下标

    1.本题PTA提交列表

    1232142-20171215092738482-1134389892.png

2. 设计思路

定义max=0放最大值,i用来控制循环
for I=0 to i<n
    遍历数组,若*(a+i)>=max)
      max便赋值为*(a+i)
         *b存放最大值下标I
end for
返回 max
返回 *b

3.代码截图

1232142-20171215093139529-790393668.png

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

  • 这道题没有遇到问题,因为它跟第二道题差不多

    题目3:6-7 过滤字符串只保留串中的字母字符

    1.本题PTA提交列表

    1232142-20171215163837058-1736764318.png

    2. 设计思路

    1232142-20171215190023074-284852381.png

3.代码截图

1232142-20171215163923527-1807756781.png

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

1232142-20171215164548683-1619355031.png
1232142-20171215164839449-1187043047.png

  • 把i++放进if条件里面了,一直输不出来,最后通过调试找出来了。

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

    1232142-20171215165113402-1186104332.png

    三、阅读代码

    代码一:6-8 使用函数实现字符串部分复制

    1232142-20171215165840668-2020717785.png

  • 这代码是彭希同学的,很简洁明了。之前我差不多也是照这样做的,不过提示答案错误。这道题在devc上不能运行,在pta上就能答案正确,所以不好找错误,然后就只能重新换思路写代码。不过看到彭希同学这代码发现是真是很简洁。

    代码二:

#include<stdio.h>
main()
{
int  a[10]={1,2,5,8,9,10}, an=5,b[10]={1,3,4,8,12,18},bn=5;
int  i,j,k,c[20],max=9999;
a[an+1]=b[bn+1]=max;
i=j=k=0;
while((a[i]!=max)||(b[j]!=max))
if(a[i]<b[j])  {c[k]=  a[i];   k++;  i++;}
else           {c[k]=  b[j];   k++;  j++;}
for(i=0;i<k;i++)  printf("%4d",c[i]); printf("\n");
}
  • 以上程序分别在a数组和b数组中放入an+1和bn+1个由小到大的有序数,程序把两个数组中的数按由小到大的顺序归并到c数组中。这代码是课堂派数组里面的,很简洁明了,希望我们能够学习一下这样的做法

    四、本周学习总结

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

  • 上一周对指针的概念还很迷糊,本周通过pta和书本开始逐渐掌握了。指针在处理一些字符串问题方面可以快速地解决,效率很高,但也容易产生混乱,所以要熟练指针概念;
  • 库函数是真的很快速便捷,很方便。像常见的字符判别函数(#include<ctype.h>预处理命令)和常见的字符串操作函数(include<string.h>预处理命令)。可以提高我们的做题效率

    2.罗列本周一些错题。

    1232142-20171215173429636-1522822501.png
    1232142-20171215173500730-1088498591.png
  • j应该小于*n-1,不然下面a[j]=a[j+1]的时候可能会越界
    1232142-20171215173739652-1758569098.png
    1232142-20171215173751933-1238991894.png
  • (p-1)-32是只能遇到小写字母的情况下才有效,遇到其他情况就不能了。所以用toupper( (p-1))可以进行强制转换

posted on 2017-12-16 14:52  Longjingrap 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/peng075078/p/8041256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值