Загрузка...

Помогите с задачкой

Тема в разделе C/C++ создана пользователем нелепость 27 ноя 2022. 202 просмотра

  1. нелепость
    нелепость Автор темы 27 ноя 2022 Кружки - lolz.live/threads/6094870/ 7475 20 янв 2020
    Дана последовательность из М чисел. Найти набольшее и наименьшее из чисел меньших 10 или больших 100 . Вывести их порядковые номера.
    Решать с оператором for.
    Без массивов.
    Есть приблизетльный код, но нужно его дополнить, т.к. он вычисляет в диапозоне меньше 10 и больше 100. Дополнить надо вычисление меньше 10, без больше 100. И без меньше 10, больше 100.
    C
    # include <iostream>
    using namespace std;
    int main()
    {
    setlocale(LC_CTYPE, "Russian");
    system("color f0");

    int M,i,n,min=10,max=100,minNum=-1,maxNum=-1;
    cout << "Введите количество чисел:";
    cin >> M;

    for (i = 0; i < M; i++)
    {
    cout << "Введите число:";
    cin >> n;
    if (n < min)
    {
    min = n;
    minNum = i + 1;
    }
    else if (n > max)
    {
    max = n;
    maxNum = i + 1;
    }
    }
    cout << "Мин число:" << min << " Номер:" << minNum;
    cout << "\n" <<"Макс число:" << max << " Номер:" << maxNum;
    }
     
  2. LVV

    неверная логика нахождения минимума.
    если числа будут 5 6 7 8 9
    у тебя минимум выведется как -1

    просто добавить условия или сделать два цикла если хочешь найти по отдельности

    + сравнивать нужно оба случая, если ищешь максимум и минимум, а не единичный
     
    27 ноя 2022 Изменено
    1. Посмотреть предыдущие комментарии (1)
    2. LVV
      нелепость, нет, у тебя проблемы с минимумом:
      возьми список: 3, 4, 5
      у тебя первоначальное значение: -1
      -1 > 3
      нет
      -1 > 4
      нет
      -1 > 5
      нет

      вывод: минимум: -1

      исправь логику своего кода. она просто неверная

      насчет деления я тебе и так подсказал: создать доп условия или разделить на циклы.
    3. LVV
      нелепость, ебать, у тебя 4 переменных на чисто индексацию, соре. я увидел что у тебя переменных две.

      но это не отменяет неверную логику.
      для нахождения:
      для минимума сетят 10^6
      для максимума сетят: 0

      а у тебя они равны 10 и 100
      даже так у тебя неверный минимум и максимум))

      пример:
      11, 12, 13
      для минимума:
      10 > 11
      нет
      10 > 12
      нет
      10 > 13
      нет
      ответ: 10, хотя должно быть 11

      и также с максимумом.

      потрудись открыть гугл, тебе решение за бесплатно не скину(т)
    4. Посмотреть следующие комментарии (1)
  3. Joker9019
    Joker9019 5 дек 2022 Заблокирован(а) 3 27 ноя 2022
    нелепость,
    C
    #include <iostream>

    using namespace std;

    int main()

    {

    int M, a; int min, max;

    int min_index, max_index;

    cout << "Enter M: ";

    cin >> M;

    cout << "Enter sequence of numbers: ";

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

    {

    cin >> a;

    if (a > 100 || a < 10)

    {

    if (i == 0)

    {

    min = a;

    max = a;

    min_index = i;

    max_index = i;

    }

    else

    {

    if (a > max)

    {

    max = a;

    max_index = i;

    }

    else if (a < min)

    {

    min = a;

    min_index = i;

    }

    }

    }

    }

    cout << "Maximum number: " << max << " Index: " << max_index+1 << endl;

    cout << "Minimum number: " << min << " Index: " << min_index+1 << endl;



    return 0;

    }
     
    1. нелепость Автор темы
Top
Загрузка...