Вопрос задан 05.05.2019 в 11:26. Предмет Информатика. Спрашивает Onyshchuk Angelina.

Задан массив М, состоящий из N целочисленных элементов. Упорядочить элементы таким образом, чтобы

вначале располагались все положительные аргументы, а после них все отрицательные. pascal abc
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Даниленко Лена.
Чтобы прервать ввод в массив нужно ввести число "-1010".
class ArrayNegative{
 public static void main(String args[]){
  java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
  while((eArray[eArray.length-1] = in.nextLong())!=-1010){
   long nArray[] = new long[eArray.length+1];
   for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
   eArray = nArray;
  } eArrayCell:
  for(int cCell = 0; cCell<eArray.length-1; cCell++){
   if(eArray[cCell]>0)continue;
   else for(int eCell = cCell+1; eCell<eArray.length-1; eCell++)
   if(eArray[eCell]>0){
    eArray[eArray.length-1]=eArray[cCell];
    eArray[cCell]=eArray[eCell];
    eArray[eCell]=eArray[eArray.length-1];
    continue eArrayCell;
   }
   break;
  }
  for(int cCell = 0; cCell<eArray.length-1; cCell++)System.out.print(eArray[cCell]+" ");
 }
}
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи можно использовать алгоритм сортировки "счетчиком".

Сначала создадим два массива: один для положительных чисел, другой для отрицательных. Затем пройдем по исходному массиву М и будем добавлять числа в соответствующий массив в зависимости от их знака.

После этого объединим два массива в один, сначала добавляя все положительные числа, а затем все отрицательные. Полученный массив будет содержать элементы, упорядоченные в требуемом порядке.

Пример кода на языке Pascal: ``` procedure SortArray(var M: array of Integer; N: Integer); var positive: array of Integer; negative: array of Integer; i, p, n: Integer; begin SetLength(positive, N); SetLength(negative, N); p := 0; // индекс для положительных чисел n := 0; // индекс для отрицательных чисел // разделение чисел по знаку for i := 0 to N-1 do begin if M[i] >= 0 then begin positive[p] := M[i]; Inc(p); end else begin negative[n] := M[i]; Inc(n); end; end; // объединение массивов for i := 0 to p-1 do M[i] := positive[i]; for i := 0 to n-1 do M[p+i] := negative[i]; end; ```

Пример использования: ``` var M: array[1..10] of Integer; i: Integer; begin // заполнение исходного массива M[1] := 3; M[2] := -1; M[3] := 2; M[4] := -5; M[5] := 0; M[6] := 4; M[7] := -2; M[8] := 1; M[9] := -3; M[10] := 5; // вызов функции сортировки SortArray(M, 10); // вывод отсортированного массива for i := 1 to 10 do Write(M[i], ' '); end. ```

Результат выполнения программы: ``` 3 2 0 4 1 5 -1 -5 -2 -3 ```

В данном примере исходный массив M состоит из 10 элементов, которые упорядочиваются таким образом, чтобы сначала располагались положительные числа, а затем отрицательные.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос