Элементы массива в обратном порядке С++
Есть задание — В одномерном статичном массиве, заполненном данными с помощью генератора случайных чисел, ненулевые значения массива расположить(вывести) в обратном порядке.
Создал одномерный массив, заполнил его данными, а вот как расположить элементы в обратном порядке, увы, ещё не учил.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
#include "stdafx.h" #include #include #include using namespace std; int main() { setlocale(0, ""); srand(time(NULL)); int N; cout "Введите размер массива:" endl; cout "N = "; cin >> N; int* A = new int[N]; for (int i = 0; i N; i++) { A[i] = rand(); cout A[i] endl; } _getch(); return 0; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Не использую доп. элементов массива переставить элементы массива в обратном порядке
Не использую доп. элементов массива переставить элементы массива в обратном порядке Вот что.
Переставить элементы заданного массива в обратном порядке без использования дополнительного массива
Напишите программу, которая переставляет элементы массива в обратном порядке без использования.
Вывести элементы массива в обратном порядке
Дан целочисленный массив размером N(Вводит пользователь). Вывести его элементы в обратном порядке.
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#include #include #include using namespace std; int main() { setlocale(0, ""); srand(time(NULL)); int N; cout "Введите размер массива:" endl; cout "N = "; cin >> N; int* A = new int[N]; for (int i = 0; i N; i++) { A[i] = rand()%11;//генерация чисел от 0 до 10 cout A[i] " "; } cout endl; //расположение ненулевых чисел в обратном порядке //нули остаются на своих местах int k = N; for (int i = 0; ik; i++) { if (A[i] == 0) continue; for (int j = k-1; j != i; j--) { if (A[j] == 0) continue; swap(A[i], A[j]); k = j; break; } } //вывод переупорядоченного массива for (int i = 0; i N; i++) { cout A[i] " "; } cout endl; _getch(); return 0; }
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Переставить элементы массива в обратном порядке
Необходимо написать программу, которая переворачивает массив елементов.
Переставить элементы массива в обратном порядке
int *ans = new int; for (int i = counter — 1; i >= 0; i—) for (int j = 0; j < counter; j++).
Переставить в обратном порядке элементы массива
Array72. Дан массив A размера N и целые числа K и L (1 ≤ K < L ≤ N). Переставить в обратном порядке.
Переписать элементы массива в обратном порядке
Переписать элементы массива А(n) в массив X(n)в обратном порядке. int main()
Поменять порядок расположения элементов внутри массива на обратный
В консоли он выдаёт: «фазан сидит где», а необходимо, чтоб он выдавал всю фразу из colors. «фазан сидит где знать желает охотник Каждый». Не понимаю, где именно ошибка. Что нужно исправить?
Отслеживать
47.5k 17 17 золотых знаков 56 56 серебряных знаков 99 99 бронзовых знаков
задан 23 сен 2020 в 13:27
Алексей Оленников Алексей Оленников
21 2 2 бронзовых знака
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
for (int i = 0; i < colors.length / 2; i++) < String result = colors[i]; colors[i] = colors[colors.length - i - 1]; colors[colors.length - i - 1] = result; >for (int i = 0; i
Отслеживать
47.5k 17 17 золотых знаков 56 56 серебряных знаков 99 99 бронзовых знаков
ответ дан 23 сен 2020 в 13:31
user176262 user176262
String text = "Каждый охотник желает знать, где сидит фазан"; List colors = Arrays.stream(text.split(",?\\s+")).collect(Collectors.toList()); Collections.reverse(colors); colors.forEach(System.out::println);
Отслеживать
ответ дан 24 сен 2020 в 3:49
1,517 8 8 серебряных знаков 15 15 бронзовых знаков
24 сен 2020 в 5:15
Ваша ошибка в том, что вы проходите цикл по всему массиву, при этом одновременно меняя 2 элемента
for (int i = 0; i < colors.length / 2; i++)
Так же можно создать 2й массив куда будете записывать значения
String text = "Каждый охотник желает знать, где сидит фазан"; String[] colors = text.split(",?\\s+"); String[] result = new String[colors.length]; for (int i = 0; i
Или воспользоваться Collections.reverse из библиотек java.util.Collections + java.util.Arrays
String text = "Каждый охотник желает знать, где сидит фазан"; String[] colors = text.split(",?\\s+"); Collections.reverse(Arrays.asList(colors)); System.out.println(Arrays.asList(colors));
Обратный порядок элементов массива
А как сделать, чтобы мне в обратном порядке выводились элементы массива, идущие не по порядку (2, 0, 12, 3), которые, скажем, я введу сам?
И как ввести массив самому на консоли?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Разбив элементы массива на тройки, замените в каждой тройке порядок следования элементов на обратный
Сгенерируйте массив A(N), причем N кратно 3. Разбив элементы массива на тройки, замените в каждой.
Изменить порядок элементов в массиве на обратный
Всем прив. не могу дописать программу которая меняет порядок элементов using System; using.
Изменить порядок элементов в массиве целых чисел на обратный
Написать программу, которая будет менять порядок элементов в массиве целых чисел на обратный. В.
Одномерный массив: изменить порядок следования элементов на обратный
Для заданного условия составить процедуру и придумать несколько наборов тестовых данных для.
5869 / 4746 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
Сообщение было отмечено Cloudlett как решение
Решение
Сообщение от Cloudlett
Я знаю как сделать обратный порядок элементов, которые идут по порядку:
это не элементы, а индексы выводятся.
Сообщение от Cloudlett
как ввести массив самому на консоли?
1 2 3 4 5
for (int i=0; in; i++) { Console.WriteLine("Введите элемент №" + (i+1).ToString()+ ":"); arr[i]=Int32.Parse(Console.ReadLine()); }
Сообщение от Cloudlett
как сделать, чтобы мне в обратном порядке выводились элементы массива, идущие не по порядку
1 2 3 4
for (int i = n - 1; i >= 0; i--) { Console.Write(arr[i]); }
Обратный массив в Java
В этом посте мы обсудим, как реверсировать массив в Java.
1. Наивное решение
Простое решение — создать новый массив того же типа и размера, что и входной массив, заполнить его элементами из исходного массива в обратном порядке, а затем скопировать содержимое нового массива в исходный.
import java . util . Arrays ;
class Main
// Вспомогательный метод для реверсирования элементов массива
public static void reverse ( int [ ] nums )
int [ ] temp = new int [ nums . length ] ;
for ( int i = 0 ; i < nums . length ; i ++ ) <
temp [ nums . length - 1 - i ] = nums [ i ] ;
for ( int i = 0 ; i < nums . length ; i ++ ) <
nums [ i ] = temp [ i ] ;
public static void main ( String [ ] args )
int [ ] nums = < 1 , 2 , 3 , 4 , 5 >;
reverse ( nums ) ;
System . out . println ( Arrays . toString ( nums ) ) ;
2. Реализация на месте
Вышеупомянутая реализация требует O(n) дополнительное место для вспомогательного массива. Мы можем избежать этого, изменив массив на месте. Это означает, что преобразование должно происходить без использования вспомогательного массива, путем перезаписи существующих элементов массива.
Алгоритм на месте можно реализовать, читая элементы с обоих концов массива и меняя их местами, как показано ниже: