М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Smolensk145
Smolensk145
28.01.2022 00:04 •  Информатика

С++ Дан массив a из n целых чисел. Требуется поменять местами первый отрицательный и последний положительный элементы массива. Если какого-то из этих элементов в массиве нет, то не изменять массив. Ноль считать положительным числом.

Формат входных данных
На первой строке записано натуральное число n (n<100) — размер массива. На следующей строке через пробел записаны n целых чисел ai (|ai|≤1000) — элементы массива.
Формат выходных данных
Требуется вывести n чисел — изменённый массив.
входные данные
9
1 2 3 4 -9 10 12 14 15
выходные данные
1 2 3 4 15 10 12 14 -9

👇
Ответ:
konotopnastya
konotopnastya
28.01.2022

#include <bits/stdc++.h>

using namespace std;

int main(){

int n, negativeIndex = 0, positiveIndex = 0, buf = 0;

bool a, b = false;

cin >> n;

int arr[n];

for(int i = 0; i < n; ++i){

 cin >> arr[i];

}

for(int i = 0; i < n; ++i){

 if(arr[i] < 0){

  negativeIndex = i;

  a = true;

  break;  

 }

}

for(int i = n-1; i >= 0; --i){

 if(arr[i] >= 0)

  positiveIndex = i;

  b = true;

  break;

}

if(a && b){

buf = arr[negativeIndex];

arr[negativeIndex] = arr[positiveIndex];

arr[positiveIndex] = buf;

}

for(int i = 0; i < n; ++i){

 cout << arr[i] << "\t";

}

return 0;

}

4,8(94 оценок)
Открыть все ответы
Ответ:
yulyatalko
yulyatalko
28.01.2022
Если программа нужна на паскале, то вот держите

program ArrayZ;
uses CRT; // Подключение модуля CRT
var  z: array[1..4, 1..3] of integer; // Массив  i, j, n, o: integer;// Переменные для циклов и счета отрицательных и нечетных элементов
begin  randomize; // Нужно для turbopascal  // Заполнение массива  for i := 1 to 4 do  begin    writeln; // Переход на другую строку    for j := 1 to 3 do    begin      z[i, j] := random(60) - 30; // Рандомное заполнение массива      write(z[i, j]:8); // Вывод в консоль массива    end;  end;  // Нахождение отрицательных и нечетных элементов  for i := 1 to 4 do    for j := 1 to 3 do    begin      if z[i, j] mod 2 <> 0 then // Нахождение нечетных элементов        n := n + 1;      if z[i, j] < 0 then // Нахождение отрицательных элементов        o := o + 1;    end;   writeln; // Переход строки чтобы не было конфликтов  writeln('Нечетных элементов: ', n, ' | Отрицательных элементов: ', o); // Вывод результатаend.
4,5(59 оценок)
Ответ:
VadAltman13
VadAltman13
28.01.2022
Данная программа выполнена для PascalABC.net, немного кривая, но полностью рабочая. 

uses GraphABC;
var i:integer;

Procedure Boy(z,w:integer);
begin
rectangle(z-20,w-30,z+20,w+40);
MoveTo(z-20,w-20);
LineTo(z-35,w+15);
LineTo(z-20,w);
LineTo(z-20,w-20);
Floodfill(z-25,w,clBrown);
MoveTo(z+20,w-20);
LineTo(z+35,w+15);
LineTo(z+20,w);
LineTo(z+20,w-20);
Floodfill(z+25,w,clBrown);
Floodfill(z,w,clBlue);
MoveTo(z-10,w+40);
LineTo(z-10,w+70);
LineTo(z-3,w+70);
LineTo(z-3,w+40);
LineTo(z+3,w+40);
LineTo(z+3,w+70);
LineTo(z+10,w+70);
LineTo(z+10,w+40);
LineTo(z-10,w+40);
Floodfill(z-5,w+65,clBrown);
Floodfill(z+5,w+65,clBrown);
Circle(z,w-40,20);
Floodfill(z,w-40,clBrown);
end;

Procedure Ball(x,y:integer);
begin
circle(x,y,15);
floodfill(x,y,clRed);
end;

begin
lockdrawing;
for i:=1 to 20 do begin
boy(100,200);
Ball(100+i*5,200-i*5);
ellipse(200,115,250,140);
RedRaw;
ClearWindow(clWhite);
end;
for i:=1 to 5 do begin
boy(100,200);
Ball(200+i*5,100+i*5);
ellipse(200,115,250,140);
RedRaw;
ClearWindow(clWhite);
end;
for i:=1 to 25 do begin
boy(100,200);
Ball(225,125+i*5);
ellipse(200,115,250,140);
RedRaw;
ClearWindow(clWhite);
end;
end.
4,4(89 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ