Проблема с вашим циклом.
Вы не должны увеличивать значение j до i. Вот почему «1 встречается 2 раза» печатает дважды. Что вам нужно сделать, так это проверить, что значение определенного индекса массива встречалось несколько раз перед выполнением части печати.
public static<T> T[] subArray(T[] array, int beg, int end) {
return Arrays.copyOfRange(array, beg, end + 1);
}
public static boolean hasDuplicateValues (int[] array, int value )
{
boolean result = false ;
int count = 0 ;
for (int i=0 ; i< array.length; i++)
{
if(array[i] == value)
{
count = count+1 ;
}
}
if(count > 1)
{
result = true;
}
return result;
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int[] num = new int[100];
int i = 0;
System.out.print("Enter the integers between 1 and 50: ");
num[i] = input.nextInt();
while(num[i] != 0){
i++;
num[i] = input.nextInt();
}
for(int j=0;j<i;j++){
int n = 0;
for(int k=0;k<i;k++){
if(num[j] == num[k]){
n++;
}
}
int[] subarray = subArray(num, 0, i);
boolean isDuplicate = hasDuplicateValues (subarray , num[i] )
if(isDuplicate == false )
{
System.out.println(num[j] + " occurs " + n + " times");
}
}
}
Кто именно эта "группа людей"? С чем они сравнивают его?
Для подавляющего большинства вещей C ++ не «намного быстрее», чем C #. Это, безусловно, имеет преимущества в различных ситуациях, особенно когда вы хотите более детерминированной обработки памяти, но, по моему опыту, узкое место в большинстве приложений не в тех местах, где C ++ может помочь. Как говорит Спулсон, большая часть производительности находится в дизайне, а не в точной реализации - и там это помогает легко пробовать разные конструкции.
Зачем нам использовать C #, когда это бит медленнее, чем C ++? Потому что обычно считается (то есть, некоторые не согласны :), чтобы развиваться было намного легче, не стреляя себе в ногу.
Что касается того, что C # может использоваться для ... для чего вы хотите использовать его? Если вы не хотите разрабатывать драйверы и ядра, это может быть хорошо для вас. (Даже в разработке ОС есть люди, использующие C # ...)
Вакансии? Нагрузки.
Downsides? Ну, сам .NET доступен только на платформах Microsoft. Есть Mono , но он не обладает такой же степенью переносимости, как Java (без сомнения, другой «медленный» язык, согласно той же группе людей).
Код, написанный на ассемблере, может быть невероятно быстрым. Почему бы просто не написать на собрании?
Не верьте всему, что слышите. C # был достаточно быстрым для всех моих проектов. Как правило, производительность является более важным фактором проектирования, чем производительность исходной платформы.
Я бы сказал, что люди, с которыми вы разговаривали, просто не знают, о чем они говорят. Легко и просто.
Многие приложения уровня предприятия построены на C # и других языках .Net. В них нет ничего медленного. Да, , как правило, имеют более медленное время запуска, но на этом все и заканчивается.
Я заметил, что вы упомянули Java в списке языков. Если вы довольны скоростью Java, C # не будет представлять никаких проблем. Вообще говоря, C # работает по крайней мере так же хорошо, как Java на многих различных типах тестов.
Моя последняя компания была основана по 5 ветеранов C ++ с опытом работы более 15 лет каждый. Они потратили более месяца на создание определенного сервиса Windows. Один из них найден и балуется C #. За неделю он продвинулся дальше, чем коллектив за месяц. Вскоре после этого все они переключились на C #.
Почему C #, если он может работать медленнее: какую цену вы устанавливаете на такой степени быстрого развития?
Почему это должно быть медленно? На самом деле, C # компилируется в «Intermediate Language», который JIT-кодируется во время выполнения, но это может дать вам преимущество в производительности, поскольку среда выполнения может генерировать наиболее оптимизированную для платформы, на которой работает код ...
В зависимости от приложения, которое вы хотите написать, «скорость» языка будет иметь незначительное влияние. Производительность вашего приложения будет в основном определяться тем, как вы его разрабатываете, хорошо ли вы используете инструменты / технологии, которые используете, и т. Д. Несомненно, C # не является «серебряной пулей», и есть проекты, в которых вы не должны его использовать, просто потому, что он не является подходящим инструментом для работы, но он прекрасно подойдет для большинства приложений для бизнеса / предприятия.
Я не нашел много случаев, когда C # не является хорошим выбором языков, а .Net (или Mono) не является достойной платформой. Заметные исключения: разработка на уровне ядра или драйверы. Есть много областей, где требуется низкий уровень и необработанная производительность. Для большинства, если не для всех бизнес-приложений или корпоративных приложений, C # - один из лучших вариантов для разработки. Он хорошо поддерживается, работает со многими другими системами, библиотеками, каналами связи и компонентами, уже доступными, не говоря уже о том, чтобы быть довольно хорошим языком (особенно 3.5) для работы.
ASP.Net не была плохой платформой, я вообще найти объект / стек управления, чтобы быть одним из недостатков для сложных взаимодействий. Я думаю, что ASP.Net MVC лучше подходит для более масштабируемых веб-приложений. Точно так же лучше, чем многие другие системы, с которыми я работал в прошлом.
С точки зрения уровней обслуживания и даже разработки графического интерфейса это довольно приятно. У меня гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому я не могу комментировать там. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.
Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.
У нас гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому комментировать там особо нечего. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.
У нас гораздо больше опыта работы с веб-приложениями и сервисными / коммуникационными / бизнес-уровнями, чем с настольными приложениями с графическим интерфейсом, поэтому комментировать там особо нечего. Я чувствую, что большая часть разработки GUI больше связана с IDE / Toolkit, чем с конкретным языком.Что касается замедления, вы специально перечислите Java, в большинстве случаев C # / .Net работает быстрее или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.
C # /. Net работает так же быстро или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я. C # /. Net работает так же быстро или быстрее, чем Java. Разработка IMHO, в частности, идет гладко с C # (Visual Studio) поверх Java (Eclipse). Для веб-приложений мне нравится ASP.Net MVC (и даже ASP.Net) поверх Swing. Это только я.Люди, с которыми вы говорили, не знают, о чем они говорят. C # очень похож на язык Java, все говорят; у него есть те же самые преимущества и недостатки. Все это работает очень похоже (Java / C # компилируется в промежуточный язык / байт-код, который интерпретируется, или JIT компилируется в нативный код, с различными подобными оптимизациями, о которых вам не нужно беспокоиться как программисту). Он используется во многих тех же ситуациях, что и Java, и действительно предназначен для того же рынка. Он движется намного быстрее и вносит много инноваций как язык, но он (на практике) в значительной степени только для Windows, если это вас беспокоит. Рынок труда похож. Оба являются очень популярными языками.
Что касается языка для изучения, я бы предложил что-то РАЗНОЕ. Вы говорите, что знаете C ++ и Java; C # не должно быть трудно подобрать. Потенциальные работодатели будут знать это. Попробуйте Scala или Python. И то, и другое даст вам новые взгляды на вещи (C # не так уж и много), и сделает вас лучшим программистом, научив вас новым способам мышления, а не просто добавив еще один инструмент в вашу коробку.
одна серьезная причина использовать C # вместо C ++ ......... посмотреть на все те проблемы переполнения буфера, которые есть у C ++, когда люди захватывают вашу машину, потому что они внедряют исполняемый код в ваш строки или утечки памяти .... сборщик мусора весьма удобен ИМХО
C # не всегда медленнее - во многих случаях он может работать так же хорошо, как и любой язык, который вы перечислили. Обычно алгоритм больше связан со скоростью, чем с выбором языка.
Однако C # очень выразителен, имеет отличную библиотеку базовых классов для работы и супербыструю компиляцию. Это означает, что с ним очень легко работать, и он позволяет вам работать намного эффективнее, чем во многих других языках, особенно в C ++. Например, у меня только что был небольшой проект, на который я бы выделил 1 человеко-неделю в C ++, и мы завершили его менее чем за день в C #, главным образом потому, что библиотеки базовых классов упростили многие задачи.
Даже если C ++ работает быстрее, разница невелика на современных компьютерах. Вот почему на мобильных устройствах, где процессор и память довольно ограничены, C / C ++ все еще широко используется.
Но вместо этого подумайте о времени разработки. Если бы вам понадобилось 2 месяца с использованием C ++ и 1 месяц с использованием C #, на что бы вы пошли? А когда необходимо выполнить большие изменения / рефакторинг, язык более высокого уровня делает его значительно быстрее и проще!