Просуммировать элементы матрицы, расположенные на диагоналях, параллельных главной, включая главную диагональ - C#
Формулировка задачи:
Дорогие форумчани, помогите с задачками, в понедельник зачет, ничего в голову не идет
Для квадратной матрицы размера nxn просуммировать эле-менты, расположенные на диагоналях, параллельных главной, включая главную диагональ. Результат получить в виде вектора размера 2n – 1.
В соревнованиях по прыжкам со 120-метрового трамплина принимает участие не более 30 спортсменов. Судят соревнования 5 судей. Каждый судья выставляет оценку за стиль прыжка по 20-балльной шкале. Меньшая и большая оценки отбрасываются, ос-тальные суммируются. К этой сумме прибавляются очки за даль-ность прыжка: 120 метров – 60 очков, за каждый метр превышения добавляются по 2 очка, при меньшей дальности отнимаются 2 очка за каждый метр. Получить итоговую таблицу соревнований, содержа-щую фамилию и итоговый результат для каждого участника в поряд-ке занятых мест
Решение задачи: «Просуммировать элементы матрицы, расположенные на диагоналях, параллельных главной, включая главную диагональ»
textual
Листинг программы
class Program { static void Main() { int SportsmansCount = 5; CompetitionResult[] results = new CompetitionResult[SportsmansCount]; for (int i = 0; i < SportsmansCount; i++) results[i] = new CompetitionResult(); BubbleSort(results); Console.WriteLine("Name\tDistance\tMarks\tTotal"); foreach (CompetitionResult result in results) Console.WriteLine(result); Console.Read(); } class CompetitionResult : IComparable<CompetitionResult> { string Name; int Distance; int[] Marks; public CompetitionResult() { Console.WriteLine("Введите имя спортсмена: "); this.Name = Console.ReadLine(); Console.WriteLine("Введите дальность прыжка: "); this.Distance = int.Parse(Console.ReadLine()); Console.WriteLine("Введите пять оценок (через Enter):"); this.Marks = new int[5]; for (int i = 0; i < 5; i++) this.Marks[i] = int.Parse(Console.ReadLine()); } public int GetTotal() { int sum = 60, max = int.MinValue, min = int.MaxValue; foreach (int mark in this.Marks) { if (mark < min) min = mark; if (mark > max) max = mark; sum += mark; } sum -= (max + min); if (this.Distance < 120) sum -= (120 - Distance) * 2; else sum += (Distance - 120) * 2; return sum; } public int CompareTo(CompetitionResult other) { int pointsCompareResult = this.GetTotal().CompareTo(other.GetTotal()); if (pointsCompareResult == 0) return this.Name.CompareTo(other.Name); else return pointsCompareResult; } public override string ToString() { return String.Format("{0}\t{1}\t{2}\t{3}", this.Name, this.Distance, string.Join("; ", this.Marks), this.GetTotal()); } } static void BubbleSort<T>(T[] array) where T : IComparable<T> { for (int i = 0; i < array.Length; i++) for (int j = i; j < array.Length; j++) if (array[i].CompareTo(array[j]) == -1) { T tmp = array[i]; array[i] = array[j]; array[j] = tmp; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д