Закончились бесплатные истории? Вот моя Ссылка на друзья.

Я опубликовал электронную книгу. Подборка 100 Java(интервью)решенных проблем программирования. Я дал четкое объяснение и код в книге. Поверьте мне, когда я говорю, что это даст толчок к получению работы в компании вашей мечты.



Плюс Минус

Получив массив целых чисел, вычислите доли его элементов, которые являются положительными, отрицательными и являются нулевыми. Выведите десятичное значение каждой дроби в новой строке.

Примечание. Эта задача связана с проблемами точности. Тестовые примеры масштабируются до шести знаков после запятой.

Формат ввода

Первая строка содержит целое число n, обозначающее размер массива.
Вторая строка содержит nцелые числа, разделенные пробелами, описывающие массив чисел .

Формат вывода

Вы должны напечатать 3 следующие строки:

  1. Десятичное представление доли положительных чисел в массиве по сравнению с его размером.
  2. Десятичное представление доли отрицательных чисел в массиве по сравнению с его размером.
  3. Десятичное представление доли нулей в массиве по сравнению с его размером.

Мотив проблемы

Эта проблема представляет собой модель, включающую проблемы с точностью. Большинство программистов обычно пренебрегают точностью. В большинстве случаев игнорирование точности не влияет на общий результат. В некоторых случаях Точность играет решающую роль в обеспечении точного заключения.

Точность по умолчанию для типов данных float масштабируется до шести разрядов.

Задача заключается в том, чтобы найти доли положительных, отрицательных и нулевых элементов, присутствующих в массиве.

Дробь = (Отдельное количество/Всего)

Переменные не требуются

3 переменные для представления положительных, отрицательных и нулевых значений, присутствующих в массиве.

Переменная для массива. Индексная переменная для указанного массива. А переменная the обозначает длину массива.

3переменные всегда требуются при выполнении операций над массивом.

С помощью 6переменных можно было бы решить поставленную выше задачу.

Алгоритм

  • Создайте объект класса сканера, который используется для чтения ввода значений, введенных пользователем.
  • Прочтите значение n,количество элементов в массиве. Используя это, инициализируйте массив динамически. Прочитайте значения от пользователя.
  • Создайте три отдельные переменные, которые представляют положительные p, отрицательные числа ne и нули zотдельно. Инициализировать все переменные равными нулю

p=ne=z=0;

  • . С учетом того, что в начале обхода массива не будет положительных, отрицательных и нулевых еще не посещено.

if(arr[i]›0)
p=p+1;
else if(arr[i]‹0)
ne=ne+1;
else
г=г+1;

  • Если значение элемента в массиве больше нуля. Увеличьте количество положительной переменной p
  • Если значение элемента в массиве меньше нуля. Увеличьте количество отрицательной переменной ne
  • Противоречие двух предыдущих условий гласит, что число равно нулю. Следовательно, увеличьте количество переменной, которая представляет ноль z.

System.out.println(Количество элементов /arr.length);

  • Выведите дробь для каждого элемента, присутствующего после обхода массива.

Код

Заключение

Для проблемы не существует единого решения. Работайте над Кодексом. Поделитесь со мной своими мыслями.

Вы можете подписаться на меня, чтобы получать обновления, когда я публикую новые задачи по программированию. Также вы можете присылать мне свои решения или свои идеи для любой задачи кодирования. Я был бы рад их прочитать. ;)

Спасибо за чтение.