Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2014, 17:21   #1
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию массивы

Здравствуйте,подскажите пожалуйста ошибки.Задача:Даны значения элементов двух массивов x,y размером n,упорядоченные по неубыванию. Объединить значения этих массивов в новый массив z вдвое большего размера так,чтобы они также располагались по неубыванию.
на консоли пишет:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExce ption: 5
at lab04.lab5.main(lab5.java:43)
а в проблемах:Resource leak: 'inp' is never closed lab4.java /lab04/src/lab04 line 6 Java Problem
Resource leak: 'inp' is never closed lab5.java /lab04/src/lab04 line 8 Java Problem

Код:
package lab04;
 
import java.util.*;
 
public class lab5 {
 
    public static void main(String[] args) {
        Scanner inp = new Scanner(System.in);
        final int N=5;
        int x[] = new int[N];
        int y[] = new int[N];
        int z[] = new int[N*2];
        System.out.println("Введите массив x");
        for(int i=0; i<N; i++)
        {
            x[i] = inp.nextInt();
        }
        System.out.println("Введите массив y");
        for(int i=0; i<N; i++)
        {
            y[i] = inp.nextInt();
        }
        int ix,iy,iz;
         ix = 1;  //индекс элемента массива X
         iy = 1;  //индекс элемента массива*Y
         iz = 0;  //индекс элемента массива Z
         while ((ix<=N) & (iy <= N)){   //пока есть элементы в массивах
         if (x[ix] <= y[iy]) {
            //перенос элемента X в массив Z
             iz++;
             z[iz]=x[ix];
             ix++;
         }
           else
           {    //перенос элемента Y в массив Z
             iz++;
             z[iz] = y[iy];
             iy++;
           }
      //перенос остатка из X
           while (ix<=N) {
               iz++;
               z[iz] = x[ix];
               ix++;
           }
         }
         //перенос остатка из Y
         while (iy<=N) {
             iz++;
         z[iz] = y[iy];
             iy++;
         }
         
         System.out.println("массив z:");
        for(int i=0; i<N*2; i++)
        {
            System.out.println(z[i]);
        }
 
 
    }
 
}
fkty вне форума Ответить с цитированием
Старый 27.04.2014, 08:06   #2
alexinspir
Новичок
Джуниор
 
Аватар для alexinspir
 
Регистрация: 26.08.2008
Сообщений: 1,010
По умолчанию

Код:
        int firstArray[] = ...;
        int secondArray[] = ...;
        int resultArray[] = new int[firstArray.length+secondArray.length];
        System.arraycopy(firstArray, 0, resultArray, 0, firstArray.length);
        System.arraycopy(secondArray, 0, resultArray, firstArray.length, secondArray.length);
        Arrays.sort(resultArray);
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими.
alexinspir вне форума Ответить с цитированием
Старый 28.04.2014, 21:52   #3
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

спасибо,но в чем ошибка моего кода?
fkty вне форума Ответить с цитированием
Старый 29.04.2014, 10:54   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
но в чем ошибка моего кода?
Вам же написали. В Java массивы нумеруются с 0 и в массиве из 5 элементов просто нет индекса 5 (о чем вам и сообщили)

Ну и сканнер закрывать надо после работы, а то память течь могет.
p51x вне форума Ответить с цитированием
Старый 29.04.2014, 18:13   #5
fkty
Форумчанин
 
Регистрация: 22.05.2013
Сообщений: 245
По умолчанию

т.е везде надо поставить N-1?

Последний раз редактировалось fkty; 29.04.2014 в 18:40.
fkty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
указатели на массивы и массивы указателей blacktener Общие вопросы C/C++ 16 13.06.2011 20:45
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12