Вопрос задан 09.10.2018 в 17:00. Предмет Информатика. Спрашивает Лукеев Лёша.

Дан целочисленный массив размера N (> 2). Удалить из массива все элементы с нечетными номерами

(1, 3, …). Попробовал написать, но не получилось. program project2; var n,i, nech:integer; A:array [1..10] of integer; begin n:=10; for i:=1 to n do begin writeln('Vvedite a[',i,']'); readln(a[i]); end; for i:=1 to n do if a[i] mod 2=0 then nech:=i; for i:=nech to n-1 do a[i]:=a[i+1]; writeln('massiv imeet vid'); for i:=1 to n do writeln (a[i]); end.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Акуленко Ульяна.
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-50,50); a.Println;
  a:=Range(1,a.Length-1,2).Select(i->a[i]).ToArray;
  a.Println
end.

Пример
n= 15
-31 20 -30 -1 -47 1 19 -47 32 36 -32 7 -43 -40 -23
20 -1 1 -47 36 7 -40
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваш код близок к правильному, но есть несколько ошибок. Давайте их исправим. Я также улучшу ваш код, чтобы он стал более читаемым и эффективным.

```pascal program project2; var n, i, nech: integer; A: array[1..10] of integer;

begin // Вводим размер массива writeln('Vvedite N (N > 2): '); readln(n);

// Проверка на минимальный размер массива if n <= 2 then begin writeln('N должно быть больше 2.'); exit; // Завершаем программу end;

// Вводим элементы массива for i := 1 to n do begin writeln('Vvedite A[', i, ']'); readln(A[i]); end;

// Удаляем элементы с нечетными номерами nech := 0; // Индекс последнего четного элемента for i := 1 to n do begin if A[i] mod 2 = 0 then begin nech := nech + 1; A[nech] := A[i]; end; end;

// Устанавливаем новый размер массива n := nech;

// Выводим массив writeln('Massiv imeet vid'); for i := 1 to n do writeln(A[i]); end. ```

Исправления и улучшения:

1. Добавлена проверка на минимальный размер массива (N > 2). 2. Использована переменная `nech` для отслеживания четных элементов и их копирования в начало массива. 3. Использована переменная `n` для обновления размера массива после удаления элементов с нечетными номерами. 4. Улучшена читаемость кода.

0 0

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

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

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