
Разработать программу слияния двух отсортированных по убыванию значений элементов файлов F1 и F2.
Результатом слияния должен быть файл F3, элементы которого упорядочены по возрастанию. Заранее спасибо. (С#)

Ответы на вопрос

using System;
using System.Linq;
using System.IO;
namespace LearnCSharp
{
class Program
{
static void Main(string[] args)
{
string str, str2;
StreamReader reader = new StreamReader("1.txt");
str = reader.ReadLine();
int[] x = str.Split(' ').Select(n => Convert.ToInt32(n)).ToArray();
reader = new StreamReader("2.txt");
str2 = reader.ReadLine();
int[] y = str2.Split(' ').Select(n => Convert.ToInt32(n)).ToArray();
reader.Close();
x = x.Concat(y).ToArray();
Array.Sort(x);
File.WriteAllText("3.txt", string.Join(" ", x));
}
}
}
Я честно говоря не знаток C# но я проверил у меня все работает



Конечно, вот пример реализации программы на языке C#:
csharpusing System;
using System.IO;
class Program {
static void Main(string[] args) {
string file1 = "F1.txt";
string file2 = "F2.txt";
string file3 = "F3.txt";
// Читаем данные из файлов
int[] data1 = ReadFile(file1);
int[] data2 = ReadFile(file2);
// Сливаем массивы в один и сортируем его
int[] mergedData = MergeAndSort(data1, data2);
// Записываем результат в третий файл
WriteFile(mergedData, file3);
Console.WriteLine("Готово");
}
static int[] ReadFile(string fileName) {
return File.ReadAllLines(fileName)
.Select(int.Parse)
.ToArray();
}
static void WriteFile(int[] data, string fileName) {
File.WriteAllLines(fileName, data.Select(x => x.ToString()));
}
static int[] MergeAndSort(int[] data1, int[] data2) {
int[] result = new int[data1.Length + data2.Length];
int i = 0, j = 0, k = 0;
// Слияние массивов
while (i < data1.Length && j < data2.Length) {
if (data1[i] < data2[j]) {
result[k++] = data1[i++];
}
else {
result[k++] = data2[j++];
}
}
// Добавляем оставшиеся элементы первого массива
while (i < data1.Length) {
result[k++] = data1[i++];
}
// Добавляем оставшиеся элементы второго массива
while (j < data2.Length) {
result[k++] = data2[j++];
}
// Переворачиваем массив, чтобы получить сортировку по возрастанию
Array.Reverse(result);
return result;
}
}
Программа читает данные из файлов F1.txt
и F2.txt
, сливает их в один массив и сортирует его по возрастанию. Затем результат записывается в файл F3.txt
. В этом примере предполагается, что элементы в файлах уже отсортированы по убыванию. Если это не так, то перед слиянием массивов нужно отсортировать их.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili