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

В одномерном массиве, состоящем из n вещественных элементов, вычис- лить: 39 1) сумму положительных элементов массив

В одномерном массиве, состоящем из n вещественных элементов, вычис-
лить: 39
1) сумму положительных элементов массива;
2) произведение элементов массива, расположенных между максимальным
по модулю и минимальным по модулю элементами.
Упорядочить элементы массива по убыванию, используя алгоритм сорти-
ровки методом вставки.
module N74489141;
import std.stdio, std.random, std.math;

int main(string[] argv)
{
double [ ] a;
a.length = uniform(10, 101);
writefln("Дано n = %d", a.length);
writefln("Исходный массив A[1 .. %d]:", a.length);
size_t imax, imin;
double s = 0;
foreach(size_t i, ref x; a)
{
x = uniform(-10f, 10f);
writef("%8.3f", x);
if (x > 0)
s += x;
if (abs(x) < abs(a[imin]))
imin = i;
if (abs(x) > abs(a[imax]))
imax = i;
}
double p = 0;
for (size_t i = imin * (imin < imax) + imax * (imin > imax) + 1; i < imin * (imin > imax) + imax * (imin < imax); i++)
p = (p + !p) * a[і];
writefln("\nСумма положительных элементов = %0.3f", s);
writefln("Минимальный по модулю элемент: A[%d] = %0.3f", imin + 1, a[imin]);
writefln("Максимальный по модулю элемент: A[%d] = %0.3f", imax + 1, a[imax]);
if (!p)
writeln("Между минимальным и максимальным по модулю нет элементов");
else
writefln("Произведение элементов между максимальным и минимальным по модулю = %0.6f", p);
for (size_t i = 1; i < a.length; i++)
{
double t = a[і];
size_t j = i;
while (j > 0 && a[j - 1] < t)
{
a[j] = a[j - 1];
j--;
}
a[j] = t;
}
writeln("Упорядоченный массив: ");
foreach(x; a)
writef("%8.3f", x);
readln();
return 0;
}
Дмитрий Подураев
Дмитрий Подураев
51 590
Лучший ответ
Пиши на мыло, договоримся.

Похожие вопросы