Arrays - More Exercise - Encrypt, Sort and Print Array
Здравейте,може ли малко помощ?
Не мога да разбера, този код защо не работи :
https://pastebin.pl/view/11d57e49
Благодаря предварително!
Здравейте,може ли малко помощ?
Не мога да разбера, този код защо не работи :
https://pastebin.pl/view/11d57e49
Благодаря предварително!
Може ли линк към условието?
В системата няма задача с това име,макар и че и аз съм я решавал и имам някакъв код..
https://pastebin.com/9tmDeEHV
using System;
namespace _1._Encrypt__Sort_and_Print_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            int[] nameNumbers = new int[n];
            //int vowel = 0;
            //int consonant = 0;
            for (int i = 0; i < n; i++)
            {
                int sum = 0;
                string name = Console.ReadLine();
                int lenght = name.Length;
                foreach (var element in name)
                {
                    int vowel = 0;
                    int consonant = 0;
                    //if (element == 'a' || element == 'e' || element == 'o' || element == 'y' || element == 'u' || element == 'i')
                    if (element == 'a' ||
                        element == 'e' ||
                        element == 'o' ||
                        element == 'u' ||
                        element == 'i' ||
                        element == 'A' ||
                        element == 'E' ||
                        element == 'O' ||
                        element == 'U' ||
                        element == 'I' 
                        )
                    {
                        vowel = element * lenght;
                    }
                    else
                    {
                        consonant = element / lenght;
                    }
                    sum += vowel + consonant;
                }
                nameNumbers[i] = sum;
            }
            int[] sortedNumbers = new int[n];
            // SHORT VARIANT
            Array.Sort(nameNumbers);
            foreach (var num in nameNumbers)
            {
                Console.WriteLine(num);
            }
            // LONG VARIANT
            for (int i = 0; i < n; i++)
            {
                int currentNumber = int.MaxValue;
                int index = 0;
                for (int j = 0; j < n; j++)
                {
                    int num = nameNumbers[j];
                    if (num < currentNumber)
                    {
                        currentNumber = num;
                        index = j;
                    }
                }
                
                nameNumbers[index] = int.MaxValue;
                sortedNumbers[i] = currentNumber;
            }
            foreach (var num in sortedNumbers)
            {
                Console.WriteLine(num);
            }
        }
    }
}
Има няколко проблема в решението:
Колегата @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));
        }
    }
}
Разбира се,извинявам се .
Това е задачата:
https://judge.softuni.bg/Contests/Practice/Index/1275#0
Благодаря!