2014-12-05 2 views
-1

Очень простой запрос здесь от новичка ... Я ищу, чтобы найти частоту числа в массиве ... В (искаженном) коде ниже я попытался для расчета мест где числа 5 в массиве я бегу в проблемы в разработке для циклаВычисление частоты 5 в массиве

Heres мой код попытка:

// вычисляем частоту 5 в массиве с именем число

public class find // Начало класса {

public static void main (String []args) //Begin main 
{ 

    double numbers[] = {6,7,12,5,4,2,4,6,9,5,7,11,1,23,32,45,5}; //Initialise and populate array 

int total = 0; 
int counter = 0; 
for (int x : numbers) 
{ 
    if (numbers[] == 5; counter ++) 
    {System.out.println(numbers[i] + " "); 
    } 

}

// код конца // *****************

+0

Вы впервые посмотрели куда-нибудь еще? Это не синтаксис для операторов if и доступа к массиву. Примеры действительно полезны. –

+0

Привет, Алан, здесь собраны массивы Java-книг! Отлично подходит для общего, но не для помощи для конкретных вещей ... Но, как вы говорите, примеры велики. Это действительно к тому, чтобы набирать примеры и играть с ними, чтобы учиться. Я все еще на очень базовом уровне, но лучше – Dangermouse

+0

Я думал о онлайн-примерах, затем вы можете быстро скопировать и вставить и иметь рабочий код. Плюс theres больше примеров, и правда хороша слишком, в отличие от книги или двух. –

ответ

1
int numbers[] = {6,7,12,5,4,2,4,6,9,5,7,11,1,23,32,45,5}; 

for(int x : numbers) { 
    if(x == 5) 
     counter++; 
} 
System.out.println(counter); 

Я вижу, что вы пытаетесь использовать для каждого цикл в вашей реализации.
@Code Whisperer является хорошей альтернативой этому, но если вы хотите использовать для каждого цикла, то вам нужно убедиться, что вы используете тип цикла и тип массива. В вашем случае ваш массив имеет тип double, но ваш тип цикла int. В каждой итерации вы выбираете индивидуальное значение в массиве, поэтому вам не нужно включать какие-либо скобки.

+0

Спасибо за подсказку – Dangermouse

1
for (int i = 0; i < numbers.length; i++) { 
    if (numbers[i] == 5) { 
     counter++; 
     System.out.println(counter); // shows how many 5s you have so far 
    } 
} 

Перебор массива, сравнить каждый элемент в массиве до 5. Если 5, увеличиваем счетчик на 1.

+0

Еще раз спасибо. Brilliant. Работает. Как вы печатаете окончательный номер? т.е. 3 – Dangermouse

+0

Просто переместите линию System.out за пределы цикла for –

+0

Выньте петлю? – Dangermouse

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