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

学号20175313 《程序设计中临时变量的使用》第八周

时间:2019-04-19 19:56:01      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:个数   tee   com   遇到的问题   产生   图片说明   失败   变量   list   

程序设计中临时变量的使用

一、题目要求

  //定义一个数组,比如
  int arr[] = {1,2,3,4,5,6,7,8};
 
  //打印原始数组的值
  for(int i:arr){
      System.out.print(i + " ");
  }
  System.out.println();
  
  // 添加代码删除上面数组中的5
  ...
  
  //打印出 1 2 3 4 6 7 8 0
  for(int i:arr){
      System.out.print(i + " ");
  }
  System.out.println();
 
  // 添加代码再在4后面5
  ...
  
  //打印出 1 2 3 4 5 6 7 8
  for(int i:arr){
      System.out.print(i + " ");
  }
  System.out.println();

二、运行结果截图

  • 原结果截图:

    技术图片

  • 由于屏幕原因,为了更清楚、直观的呈现运行结果,我对输出的结果格式进行了一些修改,修改后运行结果如下:

    技术图片

三、遇到的问题及其解决方法

  • 问题1:对于ArrayInsect这个类中的Insect函数的实现,出现了如下问题:

    技术图片

  • 解决方法:对于为什么输出到后面变成了“666”,起初我查看了上面删除输出的结果,是正确的;那么出现这个问题的原因只能是出在Insect这个方法上,我查看了我的Insect方法,在对它进行调试,终于找到了问题的所在。原因是因为对index后面的元素进行移位时,应该先从最后一个开始移,否则就会被覆盖,出现输出全是同一个数的情况。所以我对代码进行如下修改:

    技术图片

  • 问题2:针对问题1,对代码进行修改后,又出现了溢出的问题。
  • 解决方法:仔细分析我新改的那几条语句,发现下标是i+1,那么当i=length-1时,i+1=length,但是该数组下标最大为length-1,所以会出现溢出,应该把i的初值改为length-2。
  • 修改后运行结果截图:

    技术图片

四、代码链接

五、心得体会

  • 认真审题很重要。起初我没有认真看题目要求的输出结果,以为删除完“5”后,输出的结果应该是“1 2 3 4 6 7 8”,所以就一直在想要怎么改变一个静态数组的长度,结果毫无疑问是失败。后来我又认真进行比对,才发现要求的输出是“1 2 3 4 6 7 8 0”。
  • 不要太自负。刚开始看到这道题,我感觉这种题应该很简单,半个小时肯定能做完。然而这种自负的后果就是:首先看错题,其次又不注意细节,产生多次溢出,浪费了大量的时间。

学号20175313 《程序设计中临时变量的使用》第八周

标签:个数   tee   com   遇到的问题   产生   图片说明   失败   变量   list   

原文地址:https://www.cnblogs.com/xiannvyeye/p/10738246.html

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