【问题标题】:java array printing the repeated numbers , array in the array [closed]java数组打印重复的数字,数组中的数组[关闭]
【发布时间】:2013-11-28 16:23:59
【问题描述】:

请告诉我它在 (g[ss[i]]++;) 部分的工作原理,并告诉我在 java 中的输出顺序

class A{
    public static void main(String []a){
        int []ss={1,2,3,4,2,3,3,1,1,1,5,6,4,5,4};
        int []g=new int[15];
        for(int i=0;i<15;i++){
            g[ss[i]]++;
        }
        for(int i=1;i<15;i++){
            System.out.println(ss[i-1]+"=="+g[i]);
        }

    }
}

【问题讨论】:

  • 你试过运行它,它会给你输出
  • 请您尝试用更复杂的方式编写这个?
  • @RossDrew 这一切只是为了打印出一系列谎言1==4确实
  • @Richard Tingle:我猜应该是“1 被发现 4 次”。代码有几个缺陷,例如硬编码的 15。

标签: java arrays


【解决方案1】:

你不能运行它吗?

g[ss[i]]++;可以改写为

int index = ss[i];
g[index] = g[index] + 1;

所以是统计ss中每个数字的个数。

这很容易出错,你不应该这样做。

【讨论】:

  • 请您详细解释一下 g[ss[i]]++; ?
  • @user 到底什么不清楚?我已经描述了操作顺序。还有一个,也许更清楚一点的方式可能是g[ss[i]] = g[ss[i]] + 1
【解决方案2】:

直接运行?

1==4
2==2
3==3
4==3
2==2
3==1
3==0
1==0
1==0
1==0
5==0
6==0
4==0
5==0

这应该是你的输出。

【讨论】:

  • 感谢您的回答。是的,我知道如何运行它,但我只是想知道这条线是如何工作的 g[ss[i]]++; @海鸥
  • 感谢您的回答。是的,我知道如何运行它,但我只是想知道这条线是如何工作的 g[ss[i]]++; @leviathan
猜你喜欢
  • 2017-07-29
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多