Форумчане выручайте,не имею не малейшего понятия как это выполнить без условных операторов.
Полное задание:
Известны оценки по информатике каждого из 20 учеников класса.В начале списка перечислены все пятерки,затем
все остальные оценки.Сколько учеников имеют по информатике оценку 5?Условный оператор не использовать.Рассмотреть два
случая:
1)известно,что пятерки имеют не все ученики класса;
2)допускается,что пятерки могут иметь все ученики класса
Выполни на c# и обьясни каждую строчку.
@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); } } |
Объяснение:
marks
, в котором хранятся оценки учеников по информатике. В примере указаны оценки для 20 учеников.totalStudents
для хранения общего количества учеников в классе (равно длине массива marks
).Array.LastIndexOf()
для поиска индекса последнего элемента со значением 5 в массиве marks
. Этот индекс указывает на последнего ученика, получившего пятерку.studentsWithFive
) путем вычитания индекса последней пятерки из общего количества учеников и вычитания 1 (так как индексация массива начинается с 0).Array.IndexOf()
для поиска индекса первого элемента со значением 6 в массиве marks
. Если такого элемента нет, метод возвращает -1.studentsWithFive
значение totalStudents
, то есть все ученики получили пятерки.studentsWithFive
) будет равно значению индекса.Обратите внимание, что в решении используются методы класса Array
, такие как LastIndexOf()
и IndexOf()
, для выполнения поиска в массиве.