Я пытаюсь решить проблему в Java как часть моего задания. Проблема заключается в следующем:Обнаружение частоты уникальных номеров
Пользователь вводит по десять номеров один за другим по запросу на экране. Затем экран присваивает все различное значение массиву и аналогичный массив, чтобы удержать частоту того, сколько раз эти числа появились.
я сделал ниже работу, но, кажется, я застрял где-то в присвоении частот и различных значений массивов:
import java.util.*;
public class JavaApplication10
{
public static void main(String[] args)
{
int [] numbers = new int [10];
int [] count = new int[10];
int [] distinct = new int[10];
for (int k=0;k<10;k++)
{
count[k]=0;
distinct[k]=0;
}
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.print("Enter number 0: ");
numbers[0]=input.nextInt();
count[0]=1;
distinct[0]=numbers[0];
int j=0;
for (int i = 1;i<10;i++)
{
System.out.print("Enter number "+i+": ");
numbers[i]=input.nextInt();
while(j<i)
{
if (distinct[j]==numbers[i])
count[j]=count[j]+1;
else
distinct[j+1]=numbers[i];
j++;
}
}
for (int k=0;k<10;k++)
{
System.out.println(distinct[k]+ " "+count[k]);
}
}
}
Я знаю, что это не справедливо, чтобы попросить кого-нибудь помочь мне решить проблема. Но любой намек будет полезен. Спасибо
Ваш первый за цикл лишний. Массивы (примитивные массивы, которые являются запрещающими логические), по умолчанию инициализируются 0. Вам необязательно запрашивать «номер 0» отдельно, вы должны переместить его в цикл for и запустить цикл из 0 (это стандартное использование в любом случае). Ваш while-loop выглядит странно, что он должен делать? – Kayaman
Является ли структура данных описываемой частью задания или вашим собственным решением проблемы? – chrylis