Вычислить номер максимального по модулю элемента массива - C# (200626)
Формулировка задачи:
Помогите, пожалуйста, напишите код программы.
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) номер максимального по модулю элемента массива;
2) сумму элементов массива, расположенных после первого положительного элемента.
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a,b], а потом – все остальные.
Решение задачи: «Вычислить номер максимального по модулю элемента массива»
textual
Листинг программы
using System; using System.Linq; namespace CyberForumTasks { class Program { static void Main() { double[] array = { -5.06, 4.13, -13.25, 0, 0, 0, -9.2, 7.6, 8.4, 1 }; double[] max = { 0 }; foreach (var t in array.Where(t => Math.Abs(t) > Math.Abs(max[0]))) { max[0] = t; } Console.WriteLine("max= {0}", max[0]); int pos1 = 0, pos2 = 0; for (var i = 0; i < array.Length; i++) { if (!(array[i] > 0)) continue; pos1 = i; for (var j = pos1 + 1; j < array.Length; j++) { if (!(array[j] > 0)) continue; pos2 = j; break; } break; } Console.WriteLine("pos1= {0}\r\npos2= {1}", pos1, pos2); double sum = 0; for (var i = pos1 + 1; i < pos2; i++) { sum += array[i]; } Console.WriteLine("sum= {0}", sum); for (int i = 0, j = 0; i < array.Length; i++) { if (!(array[i] >= pos1) || !(array[i] <= pos2)) continue; if (i > j) { var tmp = (int)array[i]; array[i] = array[j]; array[j] = tmp; } j++; } foreach (var t in array) { Console.Write(t + " "); } Console.ReadKey(); } } }