Вычислить номер максимального по модулю элемента массива - 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();
        }
    }
}

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы