1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

программа про вычислению последовательности чисел

Тема в разделе "Вопросы новичков и не только", создана пользователем crystalcat, 2 ноя 2009.

Статус темы:
Закрыта.
  1. crystalcat

    crystalcat Гость

    Репутация:
    0
    Очень прошу помочь начинающей программистке :))))
    Задача заключается в написании программы, которая сосчитает вводную последовательность целых чисел (положительных, нулевых и отрицательных) и определяет третье по величине число, которое было найдено в последовательности.

    Ввод: натуральное число n, которое показывает количество цифр в последовательности.

    Вывод:третье в последовательности по величине четное число n. Если во вводе не совпадают даже три разные цифры, то программа отображает информацию, что она не может найти третье по величине четное число. Формат сообщения в приведенных ниже примерах. Для каждой строки (в том числе последних, и для любого сообщения об ошибке) новая строка.

    Программа обнаруживает ошибку, уведомляет об этом в сообщении и завершает работу если n является нулевым или отрицательным числом.

    программа ограничивается объемом доступной памяти (недостаточно для хранения всей последовательности ввода) и имеет ограниченный Runtime (ограничение 5 секунд для нескольких миллионов чисел во вводе последовательности, для этой программы необходимо рассчитать около 150 мс).
    для правильного расчета хватит всего лишь несколько (<10) целых переменных.

    Примеры:

    Введите количество чисел в последовательности:
    5
    Введите 5 чисел:
    2 6 4 8 5
    Третье наибольшее по величине число: 4



    Введите количество чисел в последовательности:
    5
    Введите 5 чисел:
    2 2 2 2 2
    Третье наибольшее по величине число: не существует

    Введите количество чисел в последовательности:
    1
    Введите 1 чисел:
    1
    Третье наибольшее по величине число: не существует


    Введите количество чисел в последовательности:
    asdf
    Неверный ввод.

    заранее спасибо! ;)
     
  2. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Помочь вам.. Для начала научитесь читать. Потом учитесь программировать. Для таких вопросов создан отдельный топик. Тема перенесена.
     
  3. DarkKnight

    DarkKnight Well-Known Member

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Код:
    /*
    codeby.net
    Autor: DarkKnight125
    */
    
    #include <iostream>
    
    using namespace std;
    
    void main (void)
    {
    setlocale(LC_ALL,"Russian");
    int n; //Кол-во цифр в последовательности
    int* Arr; //Массив - наша последовательность
    
    cout<<"Введите кол-во цифр последовательности n = ";
    cin>>n;
    if (n <= 0){
    cout<<"Не верно введено кол-во"<<endl;
    return;
    }
    Arr = new int [n];
    cout<<"Введите последовательность чисел (через пробел)"<<endl;
    for (int i=0; i<n; i++)
    {
    cin>>Arr[i];
    if (cin.fail())
    {
    cout<<"Введено не верное значение"<<endl;
    return;
    }
    }
    //для удобства отсортируем массив по убыванию (3 максимальный по величине что бы выбрать можно удобнее)
    for (int i=0; i<n; i++)
    for (int j=i; j<n;j++)
    {
    if (Arr[i]<Arr[j])
    {
    int Temp = Arr[j];
    Arr[j] = Arr[i];
    Arr[i] = Temp;
    }
    };
    
    int MaxCount = 1; //Счетчик различных чисел
    for (int i=1; i<n;i++) //Идем от начало+1 отсортированного по убыванию массива
    {
    if (Arr[i] != Arr[i-1]) //Если 2 соседних элемента не равны 
    MaxCount++; //То увеличим счетчик различных чисел
    if (MaxCount == 3) //Как только получим значение 3, то Arr[i] - и есть Третье по величине макс. число
    {
    cout<<"Третие по величине максимальное число = "<<Arr[i]<<endl;
    break;
    }
    }
    if (MaxCount < 3) //Если Счетчик не дошел до 3х значит это значение отсутствует
    cout<<"Третьего по величине максимального значения - не существует"<<endl;
    
    //Вывести массив на экран
    cout<<endl<<"Отсортированная последовательность : "<<endl;
    for (int i=0; i<n; i++)
    cout<<Arr[i]<<" ";
    cout<<endl;
    
    
    }
     

    Вложения:

    • программа про вычислению последовательности чисел
      zd1.jpg
      Размер файла:
      179 КБ
      Просмотров:
      18
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей