none
Пожалуйста помогите решить проблему RRS feed

  • Вопрос

  • не могу исправить ошибку данной программы пожалуйста подскажите как мне ее решить

    using System; 
    using System.Text; 
    using System.IO; 

    namespace Transport
    {
        class Program
        {
            static void Main()
            {
                const string path = @"C:\Users\Владимир\Desktop\Технология программирования\Транспорт.txt"; 
                if (File.Exists(path)) 
                {
                    TransportVector Transport = new TransportVector(); 
                    string[] readTransportText; 
                    readTransportText = File.ReadAllLines(path, Encoding.GetEncoding(1251));
                    #region ContainerFilling 
                    for (int i = 0; i < readTransportText.Length; i++)
                    {
                        for (int j = readTransportText.Length - 1; j > i; j--) 
                        {
                            if (readTransportText[j] < readTransportText[j-1])//глупая ошибка которую я не могу исправить
                            {
                                string tmp;
                                tmp = readTransportText[j];
                                readTransportText[j] = readTransportText[j-1];
                                readTransportText[j-1] = tmp;
                            }
                        }
                    }
                    #endregion
                    if (Transport.Size !=0)
                    {
                        Transport.Sort();
                        Transport.Print();
                    }
                    else
                        Console.WriteLine("Файл не найден!");
                        Console.ReadKey();
                }
            } 
        }  
    }

    17 ноября 2015 г. 4:31

Ответы

  • Если бы помимо кода было задание, то было бы проще. Предположу что хотели сравнить длину строк, тогда так: 

    if (readTransportText[j].Length < readTransportText[j - 1].Length)//глупая ошибка которую я не могу исправить

    17 ноября 2015 г. 9:36
  • Если бы помимо кода было задание, то было бы проще.

    Да тут просто сортировку пузырьком изучают :)

    for (int j = 0; j < readTransportText.length-1; j++) { for (int i = 0; i < readTransportText.length-j-1; i++) { if (readTransportText[i].Length > readTransportText[i+1].Length) // Знак поставьте свой - как сортировать

    { string b = readTransportText[i]; readTransportText[i] = readTransportText[i+1]; readTransportText[i+1] = b; } } }



    17 ноября 2015 г. 9:53

Все ответы

  • ошибка в чем заключается?
    17 ноября 2015 г. 5:11
  • Выход за границы... Поставьте i=1 цикле.
    17 ноября 2015 г. 6:39
  • кажется ругается на недоступный элемент массива по индексу. нужно поставить проверку. Надо выявить по какому индексу возникает ошибка. и еще вопрос вы сортируете символы? или числа?

    Если это алгоритм пузырьковой сортировки, то попробуй те так

    for(int i = 0; i < readTransportText.Length; i++)
    {
        for(int j = 0; j < readTransportText.Length - i - 1; j++) 
        {
               if(readTransportText[j] < readTransportText[j+1])
               {
                   string tmp = readTransportText[j];
                   readTransportText[j] = readTransportText[j+1];
                   readTransportText[j+1] = tmp;
                }
        }
    }


    Mak Arti

    17 ноября 2015 г. 6:49
  • Если бы помимо кода было задание, то было бы проще. Предположу что хотели сравнить длину строк, тогда так: 

    if (readTransportText[j].Length < readTransportText[j - 1].Length)//глупая ошибка которую я не могу исправить

    17 ноября 2015 г. 9:36
  • А точно он же массив строк получает. Да тогда длину строки возможно. 

    Mak Arti

    17 ноября 2015 г. 9:42
  • Если бы помимо кода было задание, то было бы проще.

    Да тут просто сортировку пузырьком изучают :)

    for (int j = 0; j < readTransportText.length-1; j++) { for (int i = 0; i < readTransportText.length-j-1; i++) { if (readTransportText[i].Length > readTransportText[i+1].Length) // Знак поставьте свой - как сортировать

    { string b = readTransportText[i]; readTransportText[i] = readTransportText[i+1]; readTransportText[i+1] = b; } } }



    17 ноября 2015 г. 9:53