public class MostFrequentNumber {
public MostFrequentNumber() {
}
int frequentNumber(List<Integer> list){
int popular = 0;
int holder = 0;
for(Integer number: list) {
int freq = Collections.frequency(list,number);
if(holder < freq){
holder = freq;
popular = number;
}
}
return popular;
}
public static void main(String[] args){
int[] numbers = {4,6,2,5,4,7,6,4,7,7,7};
List<Integer> list = new ArrayList<Integer>();
for(Integer num : numbers){
list.add(num);
}
MostFrequentNumber mostFrequentNumber = new MostFrequentNumber();
System.out.println(mostFrequentNumber.frequentNumber(list));
}
}
Может быть некоторый беспорядок здесь о какой "K& R C". Термин относится к языку, как зарегистрировано в первый выпуск "Языка программирования C". Примерно разговор: входной язык компилятора C Bell Labs приблизительно 1978.
Kernighan и Ritchie были вовлечены в процесс стандартизации ANSI. "ANSI C" диалект замененный "K& R C" и последующие выпуски "Языка программирования C" принимают соглашения ANSI. "K& R C" "мертвый язык", кроме того, до такой степени, что некоторые компиляторы все еще принимают унаследованный код.
Прототипы функции были самым очевидным изменением между K& R C и C89, но было много других. Большая важная работа вошла в стандартизацию библиотеки C, также. Даже при том, что стандартная библиотека для C была кодированием существующей практики, она шифровала [приблизительно 111] существующие методы, которые сделали ее более трудной. P.J. Книга Plauger, Стандартная библиотека для C , является большой ссылкой, и также говорит некоторые закулисные детали , почему библиотека закончила способ, которым это сделало.
ANSI/стандарт ISO C очень похож на K& R C большинством способов. Это было предназначено, что большая часть существующего кода C должна основываться на компиляторах ANSI без многих изменений. Кардинально, тем не менее, в предстандартную эру, семантика языка была открыта для интерпретации каждым поставщиком компилятора. ANSI C ввел общее описание языковой семантики, которая помещает все компиляторы на равные условия. Легко считать это само собой разумеющимся теперь, приблизительно 20 лет спустя, но это было значительным успехом.
По большей части, если у Вас нет предварительного стандарта C кодовой базой для поддержания, Вы будете рады Вы, не должны волноваться об этом. Если Вы делаете - или хуже уже, при попытке принести старой программе до более современных стандартов - тогда у Вас есть мое сочувствие.
Существуют некоторые незначительные различия, но я думаю более поздние выпуски K& R для ANSI C, таким образом, нет никакой реальной разницы больше.
"C Классик" из-за отсутствия лучшие условия имели немного отличающийся способ определить функции, т.е.
int f( p, q, r )
int p, float q, double r;
{
// Code goes here
}
я полагаю, что другим различием были прототипы функции. Прототипы не имели к - на самом деле они не могли - брать список аргументов или типов. В ANSI C они делают.
Другое различие - то, что функциональные типы возврата и типы параметра не должны были быть определены. Они, как предполагалось бы, были бы ints.
f(x)
{
return x + 1;
}
и
int f(x)
int x;
{
return x + 1;
}
идентичны.
Различие:
Самым большим единственным различием, я думаю, является определение прототипа функции и синтаксис для описания типов аргументов функции.