М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Nastyusha2aa5
Nastyusha2aa5
13.12.2022 08:49 •  Информатика

Задан отсортированный массив целых чисел. Найдите количество различных по модулю чисел среди элементов массива. Входные данные
Первая строка содержит количество чисел n (n ≤ 2 * 106). Вторая строка содержит n целых чисел, отсортированных по возрастанию. Массив может содержать одинаковые элементы.

Выходные данные
Выведите количество различных по модулю чисел.

Вхідні дані #1
6
-3 -2 0 3 4 5
Вихідні дані #1
5
Вхідні дані #2
9
-1 -1 -1 -1 0 1 1 1 1
Вихідні дані #2
2
Вхідні дані #3
4
5 5 5 5
Вихідні дані #3
1

👇
Открыть все ответы
Ответ:
daaanila2015
daaanila2015
13.12.2022

Как-то так:

#include <iostream>


using namespace std;


// В данном примере я использовал типы float, т. к. при попытке делить 3 на 2 мы получаем 1.5, но тип int обрезает все после .


int main()

{

   cout << "Task 30240725!" << endl; // just for fun


   int m[12] = {-1,-2,3,4,5,6,7,8,9,10,11,12}; // Инициализируем массив из 12 элементов, чтоб хоть части из них была отрицательная


   // среднее арифметическое состоит из сумма_числел / кол-во_чисел


   float min_sum = 0;          // сумма чисел

   float total_min_count = 0;  // кол-во чисел


   // Инициализиуем цикл от 0 (т. к. все массивы начинаются с 0) до 12 не включительно (т. к. всего элементов 12 начиная с 0. Значит 11)

   for (int i = 0; i < 12; i++) {


       // если текущий элемент массива m от индекса i меньше чем 0, значит это отрицательное число

       if (m[i] < 0) {


           min_sum += m[i];    // складываем, непосредственно, само число m[i]

           total_min_count++;  // увеличиваем кол-во чисел на 1. Можно написать строку вида total_min_count = total_min_count + 1; - суть не поменяется


       }

   }


   // Если в массиве не было отрицательных чисел, то делаем проверку. Если кол_во_чисел и сумма_чисел равны 0 значит в массиве не было отрицательных чисел.

   // а т. к. по умолчанию min_sum и total_min_count равны 0, то при попытке поделить их получим ошибку. Для этого обрабатываем это условие, чтоб не дать ее допустить.

   if (total_min_count == 0 && min_sum == 0) {

       // Выкидываем сообщение, мол, нету в массиве отрицательных чисел, работать не буду

       cout << "There are no negative numbers in the array" << endl;


       // делаем return, дабы программа не продолжила выполнение

       return 0;

   }


   // если же у нас есть и кол-во_чисел и общая_сумма, то спокойно делим одно на другое и сразу выводим в консоль результат.

   cout << "Average: " << min_sum / total_min_count << endl;


   // завершаем выполнение программы

   return 0;

}

4,8(70 оценок)
Ответ:
Ira019
Ira019
13.12.2022
1):С:\Учеб­ный\Ин­фор­ма­ти­ка\Ко­ди­ро­ва­ние ->
    С:\Учеб­ный\Ин­фор­ма­ти­ка ->
    С:\Учеб­ный ->
    С:\Учеб­ный\Ин­фор­ма­ти­ка ->
    С:\Учеб­ный\Ин­фор­ма­ти­ка\Ко­ди­ро­ва­ние ->
    С:\Учеб­ный\Ин­фор­ма­ти­ка ->
    С:\Учеб­ный ->
Не подходит, т.к. Витя опустился на n уровней, а поднялся на  n+2, что не подходит по условию.
2)С:\Учеб­ный\Ин­фор­ма­ти­ка\Ко­ди­ро­ва­ние -> 
   С:\Учеб­ный\Ин­фор­ма­ти­ка ->
   С:\Учеб­ный ->
   С:\Учеб­ный\Ин­фор­ма­ти­ка -> 
   С:\Учеб­ный\Ин­фор­ма­ти­ка\Про­грам­ми­ро­ва­ние->
   С:\Учеб­ный\Ин­фор­ма­ти­ка\Про­грам­ми­ро­ва­ние\Пас­каль
Не подходит, т.к. Витя спустился на либо на 2 уровня вниз, либо на 3, а поднялся либо на 3, либо на 4 уровня вверх, что не подходит по условию.
3)С:\Учеб­ный\Ин­фор­ма­ти­ка\Ко­ди­ро­ва­ние ->
   С:\Учеб­ный\Ин­фор­ма­ти­ка -> 
   С:\Учеб­ный -> 
   С:\Учеб­ный\Ма­те­ма­ти­ка -> 
   С:\Учеб­ный\Ма­те­ма­ти­ка\Дроби
Подходит. Витя опустился на 2 уровня вниз и поднялся на 2 уровня вверх.
4)С:\Учеб­ный\Ин­фор­ма­ти­ка\Ко­ди­ро­ва­ние -> 
   С:\Учеб­ный\Ин­фор­ма­ти­ка ->
   С:\Учеб­ный ->
   С:\ ->
   С:\Учеб­ный\ ->
   С:\Учеб­ный\Ин­фор­ма­ти­ка
Не подходит, т.к. Витя спустился на 3 уровня вниз, а поднялся на 2, что не подходит по условию.
ответ: 3)
4,5(59 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ