2015-12-23 6 views
1

У меня есть программа, которая в основном должна рандомизировать кучу чисел в массиве, а затем рассчитать количество раз, когда число в пределах диапазона найдено. Было бы затем распечатать, например,Добавить Asterisk Каждый раз, когда номер появляется в массиве

0  | *** 

1-10 | ************ 

11-20 | ********** 

21-30 | ********* 

31-40 | ************** 

41-50 | ********* 

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

массивов общественного класса {

public static void main(String[] args) { 
    int numbers[]=new int[50]; 
    String asterisk = "*"; 
    String asterisk1 = "*"; 
    String asterisk2 = "*"; 
    String asterisk3 = "*"; 
    String asterisk4 = "*"; 
    String asterisk5 = "*"; 
    for (int i = 0; i <= numbers.length; i++) 
    { 
     numbers [i] = (int)(Math.random()*50); 
     if (numbers = 0) 
     { 
      asterisk += 1; 
     } 
     if (numbers >= 1 && numbers >= 10) 
     { 
      asterisk1 += 1; 
     } 
     if (numbers >= 11 && numbers >= 20) 
     { 
      asterisk2 += 1; 
     } 
     if (numbers >= 21 && numbers >= 30) 
     { 
      asterisk3 += 1; 
     } 
     if (numbers >= 31 && numbers >= 40) 
     { 
      asterisk4 += 1; 
     } 
     if (numbers >= 41 && numbers >= 50) 
     { 
      asterisk5 += 1; 
     } 
    } 
    System.out.format("%0s, %6s, %8s", "0", "|", asterisk); 
    System.out.format("%0s, %6s, %8s", "1-10", "|", asterisk1); 
    System.out.format("%0s, %6s, %8s", "11-20", "|", asterisk2); 
    System.out.format("%0s, %6s, %8s", "21-30", "|", asterisk3); 
    System.out.format("%0s, %6s, %8s", "31-40", "|", asterisk4); 
    System.out.format("%0s, %6s, %8s", "41-50", "|", asterisk5); 
} 

}

ответ

1

чтобы дать вам немного подтолкнул вас не будет спасения рандомизированных чисел в массиве: не. Вы устанавливаете их в переменную внутри цикла, которая не живет за пределами цикла.

Кроме того, в вашем массиве будет сохранено 51 целое число, но ваш цикл будет только вставлять первые 50. Это не обязательно разорвать вашу программу, но хорошо убедиться, что все ваши номера совпадают.

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

+0

Не могли бы вы рассказать о своих объяснениях? Извините, я очень новичок в этом, но я хочу поправляться :) – StiffWizard

+0

В вашем цикле for (начиная с строки 4 выше) у вас есть одна строка кода (строка 6). Эта строка кода генерирует случайное число от 1 до 50 и сохраняет его в переменной с именем random. Поскольку ничего не делается с этой переменной, значение в ней теряется в конце выполнения цикла. Ваша первая коррекция - убедиться, что вы назначили соответствующий индекс в вашем массиве (ваша переменная i фактически содержит этот индекс) для случайного числа. Для того, чтобы это имело какой-либо смысл, вы должны понимать природу для циклов и массивов. Если вы этого не сделаете, я предлагаю сначала взглянуть на них. – dawsonc623

+0

Итак, я могу распечатать каждый номер, и он показывает каждый отдельно, но теперь, как бы я в основном сказал «если следующее число => 1 && <= 10, распечатайте звездочку« Это самая большая проблема, с которой я столкнулся, но я думал, что могу использовать цикл for, чтобы определить, что это за число, а может быть, поместить его в один из диапазонов, но как бы я это сделал? – StiffWizard

Смежные вопросы