Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/88: Рейтинг темы: голосов - 88, средняя оценка - 4.60
2 / 2 / 5
Регистрация: 31.03.2014
Сообщений: 102

Массив задом наперёд

02.04.2014, 22:37. Показов 17039. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делал учебную программу (всё не привожу, много). Но там, где потребовалось перевернуть одномерный массив случайных чисел - и ничего не получилось. То есть, я самым простым способом пробовал (или думал, что пробую) - положить в другой массив задом наперёд. Не перевернулось ничего.

Java
1
2
3
4
5
6
7
8
 out.println("Переворачиваем массив");
   int[]mas2 = new int[odnomer.length];//Создаем новый одномерный массив mas2 с длиной старого
   for(int  i=0; i<odnomer.length; i++){//Проходим циклом старый одномерный массив odnomer
       int z = (odnomer.length-1);
           mas2[z] = odnomer[i];//Записываем старый массив в новый наоборот 
           out.print(mas2[z]+" ");          
           z--;   
           }
Тут: out.print(mas2[z]+" "); Получилось вот что:

-78 -14 -95 -30 -97 97 -73 40 60 -78 -53 44 -76 -13 -71 1 40 -93 -12 4 -23 84 -38 -51 61 -48 45 -53 35 -83 -83 50 -82 -86 -95 9 -4 89 -60 -13
Повторился массив-донор

При выводе ещё раз через цикл:
Java
1
2
3
out.println("Новый массив mas2");
   for(int i=0; i<mas2.length; i++){
   out.print(mas2[i]+" ");//Выводим новый массив mas2
Вышло совсем некрасиво:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -13

Кто видит ошибки, подскажите, где они?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.04.2014, 22:37
Ответы с готовыми решениями:

Дан одномерный массив. Переставить элементы массива задом-наперед
Дан одномерный массив. Переставить элементы массива задом-наперед.

Написание массива задом наперед
Добрый вечер. Условие задачи требует развернуть массив задом наперед. Не разрешается использовать дополнительный массив. Пример ...

Дана строка символов. Вывести ее на экран задом наперед.
выручайте! Задачи: 1)Дана строка символов. Группы символов в ней между пробелами считаются словами. Определить, сколько слов начинается...

7
43 / 43 / 15
Регистрация: 10.09.2013
Сообщений: 293
03.04.2014, 02:50
Лучший ответ Сообщение было отмечено Edward111 как решение

Решение

Зачем создавать еще один массив? Реверс массива можно сделать следующим образом:
Java
1
2
3
4
5
for(int  i=0; i<odnomer.length / 2; i++){
      int tmp = odnomer[i];
      odnomer[i] = odnomer[odnomer.length - i - 1];
      odnomer[i] = tmp;
}
1
2 / 2 / 5
Регистрация: 31.03.2014
Сообщений: 102
04.04.2014, 00:47  [ТС]
Спасибо, код красивый. Но не переворачивается. Не пойму, почему. Должен бы. Специально под ваш код создал отдельный пример. Но и там не переворачиваетcя массив.

Java
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
import static java.lang.System.out;
public class ExpMassiv {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        
 
int [] mas2 = {12345678};
 
out.print(mas2[0]);
out.print(mas2[mas2.length-1]);
out.println();
for(int  i=0; i<mas2.length/2; i++){
    int tmp = mas2[i];
    mas2[i] = mas2[mas2.length-i-1];
    mas2[i] = tmp;
}
    
    out.println();
    out.print(mas2[0]);
    out.print(mas2[mas2.length-1]);
}
 
    }
Добавлено через 2 часа 57 минут
Кстати и ответ выходит необычным. Прошу вывести первый и последний элемент массива

Java
1
2
out.print(mas2[0]);
out.print(mas2[mas2.length-1]);
а выводит всё и сразу и дважды:

12345678
12345678
0
 Аватар для IVIakCollideR
40 / 40 / 14
Регистрация: 26.12.2013
Сообщений: 309
04.04.2014, 01:27
в чем собственно вопрос? название темы не соответствует содержимому, тут столько кода что аж судоргу берет
перезаписать числа в массиве задом на перед в тот же массив или в любой другой?

Добавлено через 19 минут
один из миллиона возможных вариантов:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class MyMsaa {
    public static void main(String[] args) throws Exception {
        MyMsaa myMassa = new MyMsaa ();
//создаем массив для теста     
        int[] masiv = new int[10];
        System.out.println("Было так:");
        for (int i = 0; i < masiv.length; i++) {
            masiv[i] = i;
            System.out.println("masiv[" + i + "] = " + i);
        }
        myMassa .revers(masiv);
    }
//метод принимает любой массив
    public void revers(int[] masiv) {
        int masivRevers[] = new int[masiv.length];
        System.out.println("\nСтало так:");
        for (int i = 0, j = masiv.length - 1; i < masiv.length; i++) {
            masivRevers[i] = masiv[j--];
            System.out.println("masivRevers[" + i + "] = " + masivRevers[i]);
        }
    }
}
1
59 / 56 / 38
Регистрация: 04.12.2013
Сообщений: 105
04.04.2014, 07:59
Edward111,
Java
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
import static java.lang.System.out;
 
public class ExpMassiv {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub       
 
        int [] mas2 = {1, 2, 3, 4, 5, 6, 7, 8};    // !!!
 
        out.print(mas2[0] + " ");
        out.print(mas2[mas2.length-1]);
        out.println();
        for(int  i=0; i<mas2.length/2; i++){
            int tmp = mas2[i];
            mas2[i] = mas2[mas2.length-i-1];
            mas2[i] = tmp;
        }
    
        out.println();
        out.print(mas2[0] + " ");
        out.print(mas2[mas2.length-1]);
        out.println();
    }
}
bovka@supcomp ~/progs $ javac ExpMassiv.java
bovka@supcomp ~/progs $ java ExpMassiv
1 8

1 8
bovka@supcomp ~/progs $
1
AndrewLevchenko
04.04.2014, 13:06
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.io.IOException;
import java.util.Arrays;
 
public class Test {
    public static void main(String [] args) throws IOException{
 
        int[] a = {1,2,-3,2,1,0,9,8};
        
        int[] b=new int[a.length];
        
        for (int i=a.length-1;i>=0;i--)
            b[a.length-i-1]=a[i];
 
        System.out.println(Arrays.toString(a));
        System.out.println(Arrays.toString(b));
        }
    }
59 / 56 / 38
Регистрация: 04.12.2013
Сообщений: 105
04.04.2014, 13:51
Лучший ответ Сообщение было отмечено Edward111 как решение

Решение

Цитата Сообщение от Edward111 Посмотреть сообщение
Кто видит ошибки, подскажите, где они?
Java
1
2
3
4
5
6
7
8
 out.println("Переворачиваем массив");
   int[]mas2 = new int[odnomer.length];//Создаем новый одномерный массив mas2 с длиной старого
   for(int  i=0; i<odnomer.length; i++){//Проходим циклом старый одномерный массив odnomer
       int z = (odnomer.length-1);    /*** Здесь каждый раз устанавливается последний индекс mas2[] ***/
           mas2[z] = odnomer[i];//Записываем старый массив в новый наоборот 
           out.print(mas2[z]+" ");          
           z--;   
           }
нужно объявить z перед циклом. имхо.
1
2 / 2 / 5
Регистрация: 31.03.2014
Сообщений: 102
04.04.2014, 21:55  [ТС]
Спасибо всем, перевернул и, вообще, узнал множество способов это сделать, о которых даже подозрения мелкого не имел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.04.2014, 21:55
Помогаю со студенческими работами здесь

Строка задом наперёд
Помогите вывести строку в обратном порядке пожалуйста:'(

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

Вывод числа задом наперёд
Дано натуральное число n. Вывести на экран число, которое получится после записи цифр числа n в обратном порядке. Для получения нового...

Вывести строку на экран задом наперёд
Дана строка символов до точки. Вывести её на экран задом наперёд

Ввести и вывести задом наперёд число произвольной длины
Битовые операции + pchar (ввести и вывести задом наперёд число произвольной длины) ввести строку символов произвольной длины, выделить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru