Професионална програма
Loading...
MartinBG avatar MartinBG 3828 Точки

Има няколко проблема в решението:

  • работи само за малки гласни букви
  • приема за гласна буквата "y", докато в англ. език тя е променлива
  • не сортира кодираните имена, преди да ги изведе на конзолата

Колегата @Axiomatik вече е дал вариант на оправеното решение, но ето едно и от мен:

using System;
using System.Linq;

namespace Encrypt_Sort_and_Print_Array
{
    internal static class Program
    {
        private static void Main()
        {
            var vowels = "aeouiAEOUI".ToCharArray();
            var namesCount = int.Parse(Console.ReadLine());
            var encoded = new int[namesCount];
            
            for (var i = 0; i < namesCount; i++)
            {
                var name = Console.ReadLine().Trim();
                var lenght = name.Length;
                
                /* // with LINQ
                 encoded[i] = name.ToCharArray()
                    .Select(element => vowels.Contains(element)
                        ? element * lenght
                        : element / lenght)
                    .Sum();*/
                
                foreach (var element in name)
                {
                    encoded[i] += vowels.Contains(element)
                        ? element * lenght
                        : element / lenght;
                }
            }

            Array.Sort(encoded);

            Console.WriteLine(string.Join(Environment.NewLine, encoded));
        }
    }
}

 

1