с# без использования условных операторов

Пользователь

от good20045 , в категории: Java , 2 года назад

Форумчане выручайте,не имею не малейшего понятия как это выполнить без условных операторов.

Полное задание:

Известны оценки по информатике каждого из 20 учеников класса.В начале списка перечислены все пятерки,затем

все остальные оценки.Сколько учеников имеют по информатике оценку 5?Условный оператор не использовать.Рассмотреть два

случая:

1)известно,что пятерки имеют не все ученики класса;

2)допускается,что пятерки могут иметь все ученики класса

Выполни на c# и обьясни каждую строчку.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от Ekaterina_90 , 2 года назад

@good20045 Для решения задачи без использования условных операторов, можно воспользоваться логикой работы с индексами и массивами. Вот пример решения на языке C#:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;

class Program
{
    static void Main(string[] args)
    {
        int[] marks = { 5, 5, 5, 5, 5, 3, 4, 2, 3, 5, 4, 2, 1, 3, 5, 4, 5, 5, 3, 2 };

        // Первый случай: пятерки не имеют все ученики класса
        int totalStudents = marks.Length; // Общее количество учеников в классе
        int index = Array.LastIndexOf(marks, 5); // Индекс последней пятерки

        int studentsWithFive = totalStudents - index - 1;
        Console.WriteLine("Количество учеников с оценкой 5 (первый случай): " + studentsWithFive);

        // Второй случай: допускается, что пятерки могут иметь все ученики класса
        index = Array.IndexOf(marks, 6); // Индекс первого элемента со значением 6

        studentsWithFive = index == -1 ? totalStudents : index;
        Console.WriteLine("Количество учеников с оценкой 5 (второй случай): " + studentsWithFive);
    }
}

Объяснение:

  1. Создаем массив marks, в котором хранятся оценки учеников по информатике. В примере указаны оценки для 20 учеников.
  2. Первый случай: Задаем переменную totalStudents для хранения общего количества учеников в классе (равно длине массива marks).
  3. Используем метод Array.LastIndexOf() для поиска индекса последнего элемента со значением 5 в массиве marks. Этот индекс указывает на последнего ученика, получившего пятерку.
  4. Вычисляем количество учеников с оценкой 5 (studentsWithFive) путем вычитания индекса последней пятерки из общего количества учеников и вычитания 1 (так как индексация массива начинается с 0).
  5. Выводим результат на экран для первого случая.
  6. Второй случай: Используем метод Array.IndexOf() для поиска индекса первого элемента со значением 6 в массиве marks. Если такого элемента нет, метод возвращает -1.
  7. Если индекс равен -1, значит ни один ученик не получил оценку 6, и в этом случае присваиваем переменной studentsWithFive значение totalStudents, то есть все ученики получили пятерки.
  8. Если индекс не равен -1, то количество учеников с оценкой 5 (studentsWithFive) будет равно значению индекса.
  9. Выводим результат на экран для второго случая.

Обратите внимание, что в решении используются методы класса Array, такие как LastIndexOf() и IndexOf(), для выполнения поиска в массиве.