No Image

Как вывести элементы массива в обратном порядке

СОДЕРЖАНИЕ
782 просмотров
10 марта 2020

Пользователь помещает неизвестное количество целых чисел в массив (динамический). Программа должна выводить эти числа в обратном порядке, например: Целые числа в обратном порядке. Exmp. 324,12,5987 → 423, 21, 7895 Exmp. 123, 100 → 321, 1 (два 0 удаляются)

Я не уверен, что я на правильном пути, но я искренне надеюсь, что кто-то может предложить мне решение. Прямо сейчас, я получаю ошибку "Ошибка сегментации" – может ли это быть связано с пространством массива?

Вот мой код на данный момент:

c++ arrays reverse

2 ответа

Здесь возникает segmentation fault поскольку count не инициализируется. Я нашел много ошибок в вашей программе, например:

Лучше вы можете использовать функцию для отмены каждого числа a[i] .

И вы можете сделать так:

Или вы можете просто сделать это, как показано ниже:

Другой способ сделать это, сначала сделать каждое число int to string первым, а затем reverse его.

Как правило: попробуйте сделать свой код более модульным. Я ожидал бы найти функцию, которая вычисляет обратную величину для одного числа. Это проще для записи и гораздо проще отлаживать, поскольку вы разделяете две задачи: собираете данные, отменяете целое число.

Во всяком случае, глядя глубже в вашем коде: кажется, что после того, как вы вычислили count , содержание переменной a[i] был разрушен. ( a[i]==0 , чтобы выйти из в while петля).

Простой способ обратного преобразования десятичного числа:

Данная статья написана командой Vertex Academy. Это одна из статей из нашего "Самоучителя по Java."

Напишите программу, которая меняет местами элементы одномерного массива из String в обратном порядке. Не используйте дополнительный массив для хранения результатов.

Решение:

Комментарии к задаче:

В результате выполнения этого кода получим перевернутый массив: вместо "Каждый охотник желает знать где сидит фазан" – "фазан сидит где знать желает охотник Каждый "

Читайте также:  Как наклеить защитное стекло на экран телефона

Как была решена задача? Основная ее часть – это фрагмент:

Он по очереди меняет местами противоположные элементы массива, используя как посредника дополнительную переменную String temp (temp – от temporary, "временный"). Можно было бы обойтись и без нее, если бы массив хранил переменные числового типа.

Тут есть a[i] и малопонятное a[n-i-1]. Но на самом деле n-i-1 это просто формула для определения "противоположного" элемента массива:

Если бы мы имели массив, который бы состоял из элементов a, b, c, d, e и f, то есть массив из 6 элементов (n=6), "противоположным" (то есть элементом a[n-i-1]) для каждого из них были бы f для a, e для b и d для c. Цикл из фрагмента кода выполнялся бы три раза, до элемента d (i=0, 1, 2). Граница выполнения массива показана оранжевой линией на рисунке.

Так, обратите внимание, что мы не должны проходить циклом весь массив, чтобы поменять его элементы местами.

Надеемся – наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.

Ответ

var a:array [1..n] of integer;

for i:= 1 to n do

writeln(‘Элементы массива в обратном порядке: ‘);

for i:= n downto 1 do write (a[i],’ ‘);

writeln(‘Поменять местами первый и последний элементы: ‘);

for i:= 1 to n do write (a[i],’ ‘);

writeln(‘Среднее арифметическое всех элементов массива равно ‘,s/n:0:3)

Комментировать
782 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector