Другие языки программирования и технологии

Ввести одномерный массив n = {3, 5, 7, 9, -11, 13, 15}

или прочитать его элементы из многострочного редактора. Переставить элементы массива n в обратном порядке и найти в нем произведение элементов, расположенных после минимального элемента. (#С)
Братишка... я тут кушать тебе принес.

http://pastebin.com/vzWqkTrA

[STAThread]
public static void Main()
{
Console.Write("Введите элементы массива: ");
int[] array = ReadArray(true);
if (array == null)
{
Console.WriteLine("\nНе удалось считать массив. \nНажмите любую клавишу. ");
Console.ReadKey(true);
return;
}
ReverseArray(ref array);
Console.Write("Обратный массив: ");
foreach (int i in array)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\nСумма значений после минимального элемента: {0}\nНажмите любую клавишу. ", SummarizeAfterMin(array));
Console.ReadKey(true);
}

private static int[] ReadArray(bool fromFile = false)
{
string array;
if (fromFile)
{
OpenFileDialog fileDialog = new OpenFileDialog();
DialogResult result=fileDialog.ShowDialog();
if (result == DialogResult.Yes || result == DialogResult.OK)
{
if (fileDialog.CheckFileExists && !string.IsNullOrEmpty(fileDialog.SafeFileName))
{
array = File.ReadAllLines(fileDialog.FileName).FirstOrDefault();
if (string.IsNullOrEmpty(array))
return null;
}
else
return null;
}
else
return null;
}
else
{
array = Console.ReadLine();
}
return array?.Split(new[] {',', ' ', '\t'}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
}

private static void ReverseArray(ref int[] array)
{
array = array.Reverse().ToArray();
}

private static int SummarizeAfterMin(int[] array)
{
int index = Array.IndexOf(array, array.Min());
int sum = 0;
for (; index < array.Length; index++)
sum += array[index];
return sum;
}
Seroj Petrosyan
Seroj Petrosyan
1 755
Лучший ответ
using System;
using System.Linq;
....
public static void Main (string[] args)
{
//int[] n = { 3, 5, 7, 9, -11, 13, 15 };
//Если вводить с клавиатуры через пробел и т. д.
//Что делать при неправильном вводе не написано. В данном случае выкинет исключение
int[] n = Array.ConvertAll (
Console.ReadLine ().Split (
new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries
), x => Convert.ToInt32 (x)
);
Array.ForEach(n, x=> Console.Write("{0} ", x));
Console.WriteLine();
Array.Reverse (n);
Array.ForEach(n, x=> Console.Write("{0} ", x));
Console.WriteLine();
int index = Array.IndexOf(n, n.Min ()) + 1;
Console.WriteLine(
index == n.Length? 0 : n.Skip(index).Aggregate ((x, y) => x * y)
);
}

P.S: 9*7*5*3 = 945
P.P.S: Вывод массива можно и в процедурку оформить, но лень.
Дмитрий Самолюк все получилось, спасибо большое :)