Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a.Where(x->x<0).Concat(a.Where(x->x>=0)).Println end.
Замечание: Если стоит задача получить именно массив, а потом его вывести, можно написать так: // PascalABC.NET 3.1, сборка 1250 от 28.05.2016 begin var a:=ArrRandom(20,-99,99); a.Println; a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray; a.Println end.
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
var a:=ArrRandom(20,-99,99); a.Println;
a.Where(x->x<0).Concat(a.Where(x->x>=0)).Println
end.
Тестовое решение
88 94 55 -38 43 -72 3 -26 -1 -23 84 93 40 -8 -25 77 4 39 -50 3
-38 -72 -26 -1 -23 -8 -25 -50 88 94 55 43 3 84 93 40 77 4 39 3
Замечание:
Если стоит задача получить именно массив, а потом его вывести, можно написать так:
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
var a:=ArrRandom(20,-99,99); a.Println;
a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray;
a.Println
end.
Вот функция возвращающая дни без осадков
C#Выделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 private int[] NetOsadkov(ref int[]Pogoda) { int[] error = {-1}; int[] PogodaBezOsadkov = { 0 }; List<int> osadki = new List<int>(); int NetOsadkov = 0; if (Pogoda.Length < 31) { return error; } for (int i = 0; i < Pogoda.Length;i++ ) { if (Pogoda[i] == NetOsadkov) { osadki.Add(i+1); } } PogodaBezOsadkov = osadki.ToArray(); return PogodaBezOsadkov; }Проверяем..
C#Выделить код1 2 3 4 5 6 7 8 int[] JanuaryWeather = {123,4535,756,45,0,67,22,3453,765,35,456,35,0,35,45,76,6,567,35,6543,0,35,456,58,467,4657,458,48,0,67,745}; string result = string.Empty; foreach (int val in NetOsadkov(ref JanuaryWeather)) { result += val.ToString() + ','; } MessageBox.Show(result+" "+"Января была погода без осадков");