|
Платные хостинги
Раскрутка сайта
Книги по программированию
массив не заполняется
- выдаёт java.lang.ArrayIndexOutOfBoundsException на k[i][j] = k0+dk0*delta[i][j]; не пойму,что за глюкКод static double hx,hz,k0,dk0,zbezv,Hx,Hz;static int Nx,Nz,jbezv;static double[][] k = new double[Nx+1][Nz+1];public static double genK() { hz = Hz/Nz; jbezv = (int) (zbezv/hz); Random randomGen = new Random(); double[][] delta = new double[Nx+1][jbezv+1]; for (int i=0; i<Nx+1; i++){ for(int j=0; j<jbezv+1; j++){ double rand = (double) randomGen.nextGaussian(); delta[i][j] = rand; k[i][j] = k0+dk0*delta[i][j]; } for(int j=jbezv+1; j<Nz+1; j++){ k[i][j] = k0; } } return k[0][0];}highlightSyntax('javaE5YTI0','java');
- А размеры массивовКод static double[][] k = new double[Nx+1][Nz+1];highlightSyntax('javaGMxZTM','java');иКод double[][] delta = new double[Nx+1][jbezv+1];highlightSyntax('javaI2YzE=','java');совпадают? Ты ведь в k пишешь те же индексы что и в delta.
- delta должна быть Nx+1 на jbezv+1 , аk Nx+1 на Nz+1
- В этом и проблема. Если jbezv+1 будет больше Nz+1, а судя по всему так оно и есть, то попытка выполнить такое присваивание выдаст ошибку.Код k[i][j] = k0+dk0*delta[i][j];highlightSyntax('javaGE5Mjl','java'); Добавлено @ 10:43 Ошибка не в delta, а в k. Попробуй переписать так:Код k[i][j] = k0+dk0*delta[i][j];highlightSyntax('javaE4MjQy','java');и сразу станет ясно в каком массиве проблема.
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|