A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张明 中级黑马   /  2012-8-19 17:14  /  1506 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

要求:在一个有序的数组中插入一个数,仍然保持有序性  
  int[] arr={0,1,2,3,5,6,7,8};
  for(int x=6;x>=0;x--)//要有序插入4,手动赋值给x=6
  {
   if(arr[x]>4)
    arr[x+1]=arr[x];
   else
   {
    arr[x+1]=4;
   }
  }

这是我写的关键的地方,但是运行的结果好像不太正确啊,请教大家一下

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

2 个回复

正序浏览
arr[x+1]=arr[x];  //此行会将数组里面的元素8给覆盖了,应该先让arr数组增加一个长度,由于C#不允许随便改数组的长度,所以建议用ArrayList存储arr里面的元素

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
黑马王建伟 发表于 2012-8-19 17:50
首先我用整形数组的方式做,直接代码,这用方式是不行的,因为整形数组的长度在初始化时就固定死了,是不可 ...

谢谢你的回答。
但是我对这个自增的数组完全陌生,能否详解一下
回复 使用道具 举报
首先我用整形数组的方式做,直接代码,这用方式是不行的,因为整形数组的长度在初始化时就固定死了,是不可改变的,如果操作,就会报空指针异常,如图:

但用会自增的数组就可以了,如图:

未命名.jpg (144.48 KB, 下载次数: 29)

未命名.jpg

未命名a.jpg (109.52 KB, 下载次数: 35)

未命名a.jpg

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马