profile
Размещено 5 лет назад по предмету Информатика от stellka99

С++.
Дано количество элементов n, и сам массив а[i]. Нужно найти 2 максимальных числа и вывести их сумму.

например n=5, a[i]= 1 2 3 4 5, sum=4+5=9
n=5, a[i]= 1 2 3 4 4, sum=4+4=8.
помогите исправить код)

  1. Ответ на вопрос
    Ответ на вопрос дан Giammy

    #include <iostream>

    using namespace std;

    int main() {

    int n,max0=0,ind=0,max1= -2147483647;

    /* n - размер массива, max0 - первый максимальный элемент, ind - индекс первого максимального , max1 - второй максимальный элемент */

    cin >> n;

    int *a = new int[n]; // указатель на динамический массив типа int и размера n.

    for (int i = 0; i < n; i++)

     if ((cin >> a[i], a[i]) > max0 || i == 0) {  

     /*(cin >> a[i], a[i]) - присваивание число массиву и сразу же проверка его на максимум. */

     /* Обязательное условие i == 0, тк max0 может быть и отрицательным, поэтому в любом случае  при первой итерации максимумом будет первый элемент.*/

      max0 = a[i];

      ind = i;

     }

    for (int i = 0; i < n; i++)

     if (i != ind && a[i] > max1) max1 = a[i];  

    /* поиск второго максимума, обязательное условие (i != ind) */

    cout << max0 + max1;

    delete[] a; // удаление из памяти массив a

       return 0;

    }

    1. Ответ на вопрос
      Ответ на вопрос дан Giammy
      То есть вы предлагаете в цикл пихать префиксный инкремент?
    2. Ответ на вопрос
      Ответ на вопрос дан DigitalAnnihilator
      Ага, почитайте, что бы не позорится потом
    3. Ответ на вопрос
      Ответ на вопрос дан DigitalAnnihilator
      К слову о константах, скорее всего компилятор так и будет видеть тип - как целочисленную константу, вопрос другой - это magic number в классическом его понимании, не пишите такое, это ошибка, а не вкусовщина, а то знаете, можно много чего делать не тем местом и не тем способом, но от этого лучше ничего не станет
    4. Ответ на вопрос
      Ответ на вопрос дан Giammy
      В случае i++ сперва выполняется тело цикла, а потом изменяется значение счётчика, мне это и нужно было.
    5. Ответ на вопрос
      Ответ на вопрос дан DigitalAnnihilator
      Могу вам подсказать - в теме вы все еще не разобрались
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.