Найти максимум среди компонент, расположенных на четных позициях файла - C#
Формулировка задачи:
Здравствуйте, помогите пожалуйста с задачей в С#. Так как я в этом совсем не разбираюсь, а нужно очень срочно(((
Задан числовой файл F. Найти максимум среди компонент, расположенных на четных позициях
файла и минимум среди компонент на нечѐтных позициях. Все нулевые компоненты заменить
значением максимума, а значение минимума дописать в конце файла пять раз.
Решение задачи: «Найти максимум среди компонент, расположенных на четных позициях файла»
textual
Листинг программы
static void Main(string[] args)
{
int count = 10;
// заполняем файл рандомными числами
using (var bw = new BinaryWriter(File.OpenWrite("F.dat")))
{
var rand = new Random();
for (int i = 0; i < count; i++)
{
bw.Write(rand.Next(0, 10));
}
}
var arr = new int[count];
// считываем файл в числовой массив
using (var br = new BinaryReader(File.OpenRead("F.dat")))
{
for (int i = 0; i < count; i++)
{
arr[i] = br.ReadInt32();
}
}
Console.Write("Исходный файл: ");
foreach (var item in arr)
{
Console.Write(item + " ");
}
Console.WriteLine();
int max = arr[0], min = arr[0];
// определяем максимум и минимум
for (int i = 0; i < arr.Length; i++)
{
if (i % 2 == 0)
{
if (min > arr[i]) min = arr[i];
}
else
{
if (max < arr[i]) max = arr[i];
}
}
//нулевые на максимум меняем
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == 0) arr[i] = max;
}
//записываем новый данные в файл
using (var bw = new BinaryWriter(File.OpenWrite("F.dat")))
{
var rand = new Random();
for (int i = 0; i < arr.Length; i++)
{
bw.Write(arr[i]);
}
// дописываем 5 раз минимум
for (int i = 0; i < 5; i++)
{
bw.Write(min);
}
}
//считываем новый файл
Console.Write("Отредактированный файл: ");
using (var br = new BinaryReader(File.OpenRead("F.dat")))
{
for (int i = 0; i < count+5; i++)
{
Console.Write(br.ReadInt32() + " ");
}
}
Console.ReadLine();
}