Загрузка...

How to print the maximum negative element of an array?

Thread in C# created by нексюша Apr 17, 2024. 259 views

  1. нексюша
    нексюша Topic starter Apr 17, 2024 2859 Jun 20, 2020
    чет не получается нихуя, если первый элемент получается положительным, тогда выводит именно его, еще нужен счетчик, который выводит все элементы, которые меньше максимального отрицательного элемента (диапазон значений от -30 до 50).
    CSHARP
     int stchk = 0;
    double minimal_otr = C[0];
    for (int i = 0; i < C.Length; i++)
    {
    if (C[i] < 0)
    if (C[i] > minimal_otr)
    minimal_otr = C[i];
    if (C[i]<minimal_otr)
    stchk=stchk+1;
    }
    Console.WriteLine($"Максимальный отрицательный элемент массива: {minimal_otr}");
    Console.WriteLine($"Количество элементов меньших максимального отрицательного значения: {stchk}");
     
  2. chipolinka
    chipolinka Apr 17, 2024 521 Jul 26, 2018
    Так в два цикла мб?
    Первым циклом ищешь максимальный отрицательный. Во втором цикле считаешь элементы, которые меньше его.
     
    1. View previous comments (1)
    2. chipolinka
      нексюша, А у тебя не верное условие изначальное.
      double minimal_otr = C[0];
      Не C[0] поставь, а -31 например...

      Только тогда еще надо будет обработку сделать, что если -31 осталось, то текстом какую-нибудь ошибку писал, для красоты.
    3. нексюша Topic starter
      chipolinka, почему? всё правильно же, я же не знаю какое C[1]?
    4. chipolinka
      нексюша, Ну потому что если у тебя первое заданное число положительное будет, то по твоему коду никак отрицательное туда уже не встанет ...

      Попробуй подставить -31, мб сам поймёшь что я имею ввиду. Не хочу на сто предложений расписывать.
  3. противоположник
    у тебя чутка трабл с проверкой минимального отрицательного элемента.

    CSHARP
    int stchk = 0;
    double minimal_otr = double.MinValue; // Инициализация с наименьшим возможным значением для double
    for (int i = 0; i < C.Length; i++)
    {
    if (C[i] < 0 && C[i] > minimal_otr) // Проверка на отрицательность и больше текущего минимального отрицательного
    {
    minimal_otr = C[i];
    }
    if (C[i] < minimal_otr)
    {
    stchk = stchk + 1;
    }
    }
    Console.WriteLine($"Максимальный отрицательный элемент массива: {minimal_otr}");
    Console.WriteLine($"Количество элементов меньших максимального отрицательного значения: {stchk}");
    добавил инициализацию minimal_otr значением double.MinValue для корректного сравнения с отрицательными элементами массива
     
    1. противоположник
      поправил условие проверки на отрицательность и добавил условие для подсчета элементов, которые меньше максимального отрицательного значения
  4. lvnlvn
    скипай все положительные числа, все оставшиеся (отрицательные) проверяй на максимум
     
  5. vtlstolyarov
    CSHARP
    int stchk = 0;
    double minimal_otr = double.MinValue;
    for (int i = 0; i < C.Length; i++)
    {
    if (C[i] < 0)
    {
    stchk++;
    if (C[i] > minimal_otr)
    minimal_otr = C[i];
    }
    }
    Console.WriteLine($"Максимальный отрицательный элемент массива: {minimal_otr}");
    Console.WriteLine($"Количество элементов меньших максимального отрицательного значения: {stchk-1}");
    Отдельно надо обработать случай когда отрицательных элементов в массиве вообще нет (stchk == 0)
     
Loading...
Top