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

Posted xiannvyeye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学号20175313 《程序设计中临时变量的使用》第八周相关的知识,希望对你有一定的参考价值。

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

一、题目要求

  //定义一个数组,比如
  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 《程序设计中临时变量的使用》第八周的主要内容,如果未能解决你的问题,请参考以下文章

学号20175313 《Arrays和String单元测试》第八周

2019-2020-1 20175313 20175328 20175329 实验三 实时系统的移植

《Java程序设计》 第五周学习总结

2019-2020-1 20175313 《信息安全系统设计基础》第七周学习总结

2019-2020-1 20175313 《信息安全系统设计基础》第三周学习总结

2019-2020-1 20175313 《信息安全系统设计基础》第十周学习总结