public class Histogram
{
private int lo_;
private int hi_;
private int[] frequency_;
public Histogram(int lo, int hi)
{
lo_ = lo;
hi_ = hi;
int range = hi_-lo_+1;
frequency_ = new int[range];
for(int i =0; i <range; range++)
frequency_[i] = 0;
}
public void ReadValue()
{
Scanner in = new Scanner(System.in);
int value= in.nextInt();
while(value != -1)
{
if(value >= lo_ && value <= hi_)
{
frequency_[value - lo_]++;
value = in.nextInt();
}
}
}
private String starPrinter(int value)
{
String star = "*";
for(int i = 0; i <= value ;i++)
{
star +="*";
}
return star;
}
public String Printer()
{
String print = new String();
int range = hi_-lo_+1;
int i = 0;
while(i<range)
{
print += (lo_+i)+" : "+ starPrinter(i)+ "\n";
i++;
}
return print;
}
public int query(int value)
{
if (value >= lo_ && value <= hi_)
{
value -= lo_;
return starPrinter(value).length();
}
else
return -1;
}
public static void main(String[] args)
{
Histogram test = new Histogram(3, 9);
test.ReadValue();
}
}
Мне нужна помощь по этой гистограмме.
Конструктор генерируется по младшему и старшему числу (поэтому, если я поставлю от 3 до 9: это все числа, которые он ожидает, все остальное игнорируется)
метод readValue
будет продолжать цикл до тех пор, пока пользователь не введет -1
. Это означает, что если я наберу 3, 4, 6, 4, 6, 9 , 5, 9, 4, 10 -1
..., то все это будет сохранено в файле frequency[]
. Как сделать так, чтобы каждое значение можно было отслеживать в frequency[]
?
3
встречается один раз, 4
встречается три раза, 7
никогда не встречается, 9
встречается дважды
Printer()
сделает мне диаграмму гистограммы, которая выглядит так (используя числа, введенные ранее...)
3: *
4: ***
5: *
6: **
7:
8:
9: **
Как использовать числа, которые должна иметь частота, чтобы напечатать количество звезд, в которых встречаются числа?
метод запроса спросит пользователя, какое число он хочет, и сообщит ему, сколько раз оно встречается:
типы 3 "3 встречается 2 раза"
вводит 10 "10 вне допустимого диапазона".
У меня есть большая часть кода, мне просто нужна помощь в реализации некоторых частей.