【问题标题】:Histogram based on int array and negative values基于int数组和负值的直方图
【发布时间】:2019-01-24 10:48:40
【问题描述】:

我有一个问题要问你。

https://stackoverflow.com/questions/14975968/vertical-arrangement-with-asterisk#=

您分享这篇文章的代码非常好。我明天有考试。能不能告诉我解决办法。 我在这个程序中编辑了 int 数组。 它是 {-1, 2, 5, 3} 但程序没有在 int 数组中打印 (-1) 值。 我想当循环读取这个负值时,它会越过新行并打印“*”并将负值打印到它的下划线。

你能告诉我如何在 Java 中做到这一点吗? 谢谢你。 https://i.stack.imgur.com/ESsVE.jpg

【问题讨论】:

  • 如果你明天有考试,今天从头开始有点晚。基本上,你只是复制了一些代码,不明白为什么它没有做你想要它做的事情,并希望我们修复它,对吧?
  • 从头开始?不。没有学习算法课程,我学习了 2 种编程语言,我正在尝试学习第 3 种语言。本学期我们在大学 3rd Class 上过 Java 课。第一次考试后,老师改变了主意,试图教我们算法。这意味着我正在尝试......
  • 您甚至无法弄清楚如何在 SO 上发布问题。你花了多少时间学习 Java?
  • 我也在学英语。我们住的地方有一个成语。 “'Leb' demeden 'Leblebi'yi anlamalısınız。”这意味着,例如“有人称“roas..”,您理解“roasted chichpea”...

标签: java arrays histogram


【解决方案1】:

public static void main(String[] args) 抛出 IOException {

    int[] a = new int[] {-1,3,-4,2,5};
    int[] tmp = a.clone();

    Arrays.sort(tmp);
    int max = tmp[tmp.length-1];
    int low = tmp[0];
    int last =max;
    if(low<0) {
        last=max-low;
    }

    for (int i = 0; i < last+1; i++) {
        for (int j = 0; j < a.length; j++) {        
            if (i == last ) {
                System.out.print(a[j]);
            } else if(i<max){        
                if (i < max - a[j])
                    System.out.print(" ");
                else
                    System.out.print("*");
            }
            else {
                if (i < max - a[j] )
                    System.out.print("*");
                else
                    System.out.print(" ");
            }
        }
        System.out.println();
    }
}

【讨论】:

  • 非常感谢先生。我从没想过会这么容易。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多