Простая сортировка массива, с использованием входного и выходного файла - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Задача: дан массив целых чисел - отсортировать его в порядке неубывания.

Формат входного файла

В первой строке входного файла содержится число n (1 ≤ n ≤ 10000) — число элементов в массиве. Во второй строке находятся n целых чисел, по модулю не превосходящих 109.

Формат выходного файла

В выходной файл надо вывести этот же массив в порядке неубывания. Между любыми двумя числами должен стоять ровно один пробел. Пример:
smallsort.in smallsort.out
10  
1 8 2 1 4 7 3 2 3 6 1 1 2 2 3 3 4 6 7 8

И вот мой код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            string text = File.ReadAllText(@"smallsort.in");
            String[] numberStrings = text.Split(' ');
            long[] values = new long[numberStrings.Length];
            for (short i = 1; i < numberStrings.Length; i++)
            {
                values[i] = long.Parse(numberStrings[i]);
            }
 
            Array.Sort(values);
 
            using (StreamWriter sr = new StreamWriter(@"smallsort.out"))
            {
                for (short i = 1; i < values.Length; ++i)
                {
                    sr.Write(values[i]);
                    if (i + 1 == values.Length)
                    {
                        sr.WriteLine();
                    }
                    else
                    {
                      sr.Write(' ');
                    }
                }
 
            }
 
        }
    }
}
Вроде бы всё правильно, сортируется как надо, но при проверке выходного файла ответ почему-то не засчитывается. В чем ошибка?

Решение задачи: «Простая сортировка массива, с использованием входного и выходного файла»

textual
Листинг программы
string text = File.ReadAllText(@"smallsort.in");
string[] numberStrings = text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
 
int valuesCount = int.Parse(numberStrings[0]); // <<< количество элементов в массиве
 
long[] values = new long[valuesCount]; // <<< создание массива длиной valuesCount
 
for (int index = 0; index < valuesCount; ++index)
{
    values[index] = long.Parse(numberStrings[index + 1]); // <<< заполнение массива
}
 
Array.Sort(values); // <<< сортировка массива
 
// ... дальше просто выводим values в файл smallsort.out (опять же, индексация values начинается с нуля)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.375 из 5
Похожие ответы