Private static int[] DeleteSomethingInArray(int[] a)
{
Debug.Assert(a.Length > 1 && a.Any(x => x > 0) && a.Any(x => x < 0)); // это просто проверка, можно удалить или закоментировать
if (a.Length == 2)
return a;
var max_i = -1;
var min_i = -1;
for (var i = 0; i < a.Length; i++)
{
if (a[i] < 0 && (max_i < 0 || a[max_i] < a[i]))
max_i = i;
if (a[i] > 0 && (min_i < 0 || a[min_i] > a[i]))
min_i = i;
}
var result = new int[a.Length - Math.Abs(max_i - min_i) + 1];
var j = 0;
for (var i = 0; i < a.Length; i++)
{
if (i <= Math.Min(max_i, min_i) || i >= Math.Max(max_i, min_i))
result[j++] = a[i];
}
return result;
}
На всякий случай в заголовках
using System;
using System.Diagnostics;
using System.Linq;
1) спам
2) программа
3) сеть
4) атака
Получается слово: пост
0101011(2) = 2^5+2^3+2^1+2^0 = 32+8+2+1 = 43(10)
47(8) = 4*8+4 = 32+7 = 39(10)
63(10)
A0(16) = 10*16 = 160(10)
Числа по возрастанию: 47(8), 0101011(2), 63(10), A0(16)
Const
n=15;
var
a:array[1..n] of integer;
i,t:integer;
begin
Randomize;
Writeln('Исходный массив');
for i:=1 to n do begin
a[i]:=Random(50)+10;
Write(a[i]:3)
end;
Writeln;
for i:=1 to n div 2 do
begin t:=a[i]; a[i]:=a[n-i+1]; a[n-i+1]:=t end;
Writeln('Результирующий массив');
for i:=1 to n do Write(a[i]:3);
Writeln;
end.
Пример
Исходный массив
25 19 47 34 22 54 52 11 40 13 25 47 29 50 58
Результирующий массив
58 50 29 47 25 13 40 11 52 54 22 34 47 19 25