2016-03-02 5 views
1

Я хочу, чтобы моя гистограмма, чтобы показать, как этотГистограмма перевернут

example

, но я его с ног на голову, как этот

example2

Это мой код.

public void printHistogram() { 
    System.out.println("Print histogram"); 
    histogram = new boolean[4][6]; 
    int[] lengthTemp = numberEach(numbers); 

    for (int u = 0; u < 4; u++) { 
     for (int m = 0; m < 6; m++) { 
      if (lengthTemp[m] >= 1) { 
       histogram[u][m] = true; 
       lengthTempk[m] -= 1; 
      } 
     } 
    } 

    for (int s1 = 0; s1 < 4; s1++) { 
     for (int s2 = 0; s2 < 6; s2++) { 
      if (histogram[s1][s2]) { 
       System.out.print("*\t"); 
      } else { 
       System.out.print(" \t"); 
      } 
     } 
     System.out.println(""); 
    } 
} 

Я продолжаю пытаться изменить его, но я никогда не ошибаюсь. Я узнал, что вам просто нужно перевернуть его на середину, но я не могу понять это.

Каждая истинная гистограмма массива представляет собой звезду.

ответ

2

В первом измерении вашего массива histogram первый индекс 0 напечатан первым в верхней части гистограммы, а не снизу.

Чтобы распечатать распечатки правильно, напечатайте с конца первого измерения s1, а не на начало. Вычитает s1 по длине 2D-массива. Измените свой цикл s1 на повторение цикла.

for (int s1 = 0; s1 < 4; s1++) { 

к

for (int s1 = 3; s1 >= 0; s1--) { 
1

обратное считывание массива:

for (int s1 = 3; s1 >= 0; s1--) { 
    ... 
} 
Смежные вопросы