免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 夜夜呆
打印 上一主题 下一主题

接收已知数组,打印大小的问题? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-05-25 14:02 |只看该作者
原帖由 perryhg 于 2006-5-25 03:42 发表
换一个思路,很简单啊,不要总是从头开始,也可以从尾开始啊,找到最末的那个有效位置就可以了啊
int lastpos = 0;
for (int i = readarr.length-1; i >=0; i--) {
{
    if(readarr!=0)
    {
      ...


这个非常之好哩.....!~  受教了...!~
very thanks!!

论坛徽章:
0
12 [报告]
发表于 2006-05-25 14:05 |只看该作者
感谢大家的帮助.....
sorry,   zw_ren 朋友的方法 我没有看懂...!~
并且没有执行结果.....!

论坛徽章:
0
13 [报告]
发表于 2006-05-25 15:40 |只看该作者
public class Test {
        public static void main(String[] args) {
                int[] arr = new int[10];
                arr[0] = 1;
                arr[1] = 2;
                arr[2] = 0;
                arr[3] = 3;
                arr[4] = 0;
                arr[5] = 0;
                arr[6] = 0;
                arr[7] = 0;
                arr[8] = 0;
                arr[9] = 0;
                read(arr);
        }

        public static void read(int[] arr) {
                boolean bCut = true;
                for (int i = arr.length - 1, j = 0; i >= 0; i--) {
                        bCut = arr[i] == 0 && bCut ? true : false;
                        if (!bCut) {
                                System.out.println(arr[j++]);
                        }
                }
        }
}

执行这个类, java Test
得到结果:
1
2
0
3
正好是你想要的.

大家有看懂的给他说说.

论坛徽章:
0
14 [报告]
发表于 2006-05-25 16:37 |只看该作者
zw_ren :

public class Test {
        public static void main(String[] args) {
                int[] arr = new int[10];
                arr[0] = 1;
                arr[1] = 2;
                arr[2] = 0;
                arr[3] = 3;
                arr[4] = 0;
                arr[5] = 0;
                arr[6] = 0;
                arr[7] = 0;
                arr[8] = 0;
                arr[9] = 0;
                for (int i = 0; i < arr.length; i++) {
             System.out.println(arr[i]);
        }
        }

你试试这么打印,这样的效果是 :
1
2
0
3
0
0
0
0
0
0
   3后面的0对我来说绝对有意义!
可是按你的写法 通过 read(arr) 传进去,打印结果是:
1
2
0
3

论坛徽章:
0
15 [报告]
发表于 2006-05-25 17:12 |只看该作者
不是说后面的那些0不要吗?

怎么又说3后面的0对你来说有意义?

不知道你的题意倒底是什么?

那么p版的程序照你这样说就不对了.

论坛徽章:
0
16 [报告]
发表于 2006-05-25 17:18 |只看该作者
版主的意思让你这样来写,
public class Test {
        public static void main(String[] args) {
                int[] arr = new int[10];
                arr[0] = 1;
                arr[1] = 2;
                arr[2] = 0;
                arr[3] = 3;
                arr[4] = 0;
                arr[5] = 0;
                arr[6] = 0;
                arr[7] = 0;
                arr[8] = 0;
                arr[9] = 0;
                read(arr);
        }

        public static void read(int[] arr) {
                int[] readarr = arr;
                int lastpos = 0;
                for (int i = readarr.length-1; i >=0; i--) {
                    if(readarr != 0){
                       lastpos = i;
                       break;
                    }
                }
                for (int i = 0; i <= lastpos; i++) {
                        System.out.println(readarr);
                }
        }
}
执行 java Test
1
2
0
3
我让你这样写:
public class Test {
        public static void main(String[] args) {
                int[] arr = new int[10];
                arr[0] = 1;
                arr[1] = 2;
                arr[2] = 0;
                arr[3] = 3;
                arr[4] = 0;
                arr[5] = 0;
                arr[6] = 0;
                arr[7] = 0;
                arr[8] = 0;
                arr[9] = 0;
                read(arr);
        }

        public static void read(int[] arr) {
                boolean bCut = true;
                for (int i = arr.length - 1, j = 0; i >= 0; i--) {
                        bCut = arr == 0 && bCut ? true : false;
                        if (!bCut) {
                                System.out.println(arr[j++]);
                        }
                }
        }
}

执行 java Test
1
2
0
3

不是完全一样的吗?

论坛徽章:
0
17 [报告]
发表于 2006-05-25 18:09 |只看该作者
楼主把我们搞糊涂了。。。再说一下要求吧。谢谢

论坛徽章:
0
18 [报告]
发表于 2006-05-26 00:33 |只看该作者

  1.         public static void main(String[] args) {
  2.                 int[] arr = new int[] {0, 0, 1, 2, 0, 3, 0, 5, 0, 0, 0, 0};
  3.                 read(arr);
  4.         }

  5.         public static void read(int[] arr) {
  6.                 boolean bCut = true;
  7.                 for (int i = arr.length - 1, j = 0; i >= 0; i--) {
  8.                         bCut = arr[i] == 0 && bCut ? true : false;
  9.                         if (!bCut) {
  10.                                 System.out.println(arr[j++]);
  11.                         }
  12.                 }
  13.         }
复制代码

这个思路和我的代码差不多啊,只是写法更精简。输出
0
0
1
2
0
3
0
5

论坛徽章:
0
19 [报告]
发表于 2006-05-26 09:35 |只看该作者
开始有点晕了

论坛徽章:
0
20 [报告]
发表于 2006-05-26 22:03 |只看该作者
对不起了, rw_ren....!~
是我没说明白..! 感谢你和斑竹还有大家的帮助...!~
鞠躬...!!~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP