Помогите разобраться в программном коде. C# - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Помогите разобраться в программном коде. C#

Регистрация
4 Окт 2013
Сообщения
103
Репутация
0
Спасибо
0
Монет
0
static void Main(string[] args)
{ string a;
Console.WriteLine("Введите длину массива n");
int x = int.Parse(Console.ReadLine());
int[] array = new int[x];
Console.WriteLine("Вводите элементы массива длины n,после того как закончите вводить массив напишите end");
int i=0;

while ((a = Console.ReadLine()) != "end")
array[i++] = Convert.ToInt32(a);
for (int k = 0; k < i; k++)
Console.WriteLine(array[k]);
Console.WriteLine("Не обработанный массив");
foreach (int f in array)
{
Console.Write(f + " ");
}
Console.WriteLine();

int minIndex = 0, maxIndex = 0;

for (int f = 0; f < array.Length; f++)
{
if (array[f] > array[maxIndex])
{
maxIndex = f;
}
else if (array[f] < array[minIndex])
{
minIndex = f;
}
}

if (minIndex > maxIndex) (ПОЧЕМУ ЗДЕСЬ minIndex БОЛЬШЕ maxIndex)
{
Swap(ref minIndex, ref maxIndex);
}
for (int f = minIndex, j = maxIndex; f < j; f++, j--)
Swap(ref array[f], ref array[j]);
Console.WriteLine("Обработанный массив");
foreach (int f in array)
{

Console.Write(f + " ");
}
Console.WriteLine();
Console.ReadKey();
}

public static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
 
Регистрация
24 Июн 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Условие задачи? Зачем оно тасует элементы между максимальным и минимальным значением? if (minIndex > maxIndex) (ПОЧЕМУ ЗДЕСЬ minIndex БОЛЬШЕ maxIndex) чтобы это - for (int f = minIndex, j = maxIndex; f < j; f++, j--) отработалось правильно видимо.
 
Регистрация
28 Июн 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Он сохраняет в minIndex и maxIndex индексы для мин и макс значений. Если minIndex изначально больше maxIndex, то меняет местами так, что minIndex становится всегда меньше или равен maxIndex.
 
Сверху Снизу