Решение задачи ЕГЭ 25(С2) на C#. Использование делегата

 

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

Условие задачи
Напишите программу поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна. Если таких элементов несколько, то вывести номер первой пары.

Решение на C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
 class Program
{
 static int StrToInt(string s)
 {
 return Convert.ToInt32(s);
 }
static void Main(string[] args)
 {
 string[] s = Console.ReadLine().Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
 int[] a=Array.ConvertAll(s, new Converter<string,int>(StrToInt));
 int imax = 0;
 
 for (int i = 1; i < a.Length-1; i++)
 if (a[imax] + a[imax + 1] < a[i] + a[i + 1]) imax = i;
 
 Console.Write(imax+1);
}
 }
}

Особенностью решения является использование метода ConvertAll класса Array. Для его использования необходимо создать функцию перевода из одно типа данных в другой тип. В данном решении это StrToInt. Решение приведено для демонстрации возможного способа конвертации массива.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *