View Full Version : اشکال برنامه نویسی در آرایه ها
AVR programmer
شنبه 01 خرداد 1395, 15:38 عصر
برنامه ای نوشتم که تعداد سطر و ستون رو و همچنین المانهای ماتریس رو از ورودی بگیره و به شکل مرتب چاپ کنه ولی برنامه در هنگام اجرا error میده .
این برنامه :
import java.util.*;public class matrix_print {
static Scanner console= new Scanner(System.in);
public static void main(String args[]) {
int row=0,col=0;
int [][] matrix = new int[row][col];
System.out.print("Enter Row and Col :");
row=console.nextInt();
col=console.nextInt();
System.out.print("Enter matrix elements :");
for (int i=0;i<row;i++){
for (int j=0;j<col;j++){
matrix[i][j]=console.nextInt();
}
}
for (int k=0;k<row;k++){
for (int l=0;l<col;l++){
System.out.print(matrix[k][l]+"\t");
}
System.out.println();
}
}
}
اینم ارورش :
Enter Row and Col :5 7Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at matrix_print.main(matrix_print.java:13)
Enter matrix elements :
smokyshadow
شنبه 01 خرداد 1395, 17:02 عصر
برنامه ای نوشتم که تعداد سطر و ستون رو و همچنین المانهای ماتریس رو از ورودی بگیره و به شکل مرتب چاپ کنه ولی برنامه در هنگام اجرا error میده .
این برنامه :
import java.util.*;public class matrix_print {
static Scanner console= new Scanner(System.in);
public static void main(String args[]) {
int row=0,col=0;
int [][] matrix = new int[row][col];
System.out.print("Enter Row and Col :");
row=console.nextInt();
col=console.nextInt();
System.out.print("Enter matrix elements :");
for (int i=0;i<row;i++){
for (int j=0;j<col;j++){
matrix[i][j]=console.nextInt();
}
}
for (int k=0;k<row;k++){
for (int l=0;l<col;l++){
System.out.print(matrix[k][l]+"\t");
}
System.out.println();
}
}
}
اینم ارورش :
Enter Row and Col :5 7Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at matrix_print.main(matrix_print.java:13)
Enter matrix elements :
سلام ...چون ارایه ای که new کردی سایزش 0و0 ه ....حالا فرقی نمی کنه بعدش row o colomn و مقدار دهی کرده باشی ...یا ارایه رو بعدش با مقداریه جدید نیو کن یا اول سطر و ستونو بگیر بعد یه ارایه باهاش دنیو کن...
AVR programmer
شنبه 01 خرداد 1395, 19:06 عصر
بزنامه رو به شکل زیر تغییر دادم بازم همون ارور رو میگیره:
import java.util.*;import java.lang.*;
public class matrix_test {
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
int row,col;
System.out.print("Enter matrix row and col :");
row = console.nextInt();
col = console.nextInt();
int[][] mx = new int[row][col];
System.out.print("Enter matrix elements :");
for (int k = 0; k < mx.length; k++) {
for (int l = 0; l < mx[row].length; l++) {
mx[k][l] = console.nextInt();
}
}
for (int i = 0; i < mx.length; i++) {
for (int j = 0; j <mx[row].length; j++) {
System.out.print(mx[i][j] + "\t");
}
System.out.println();
}
}
}
AVR programmer
شنبه 01 خرداد 1395, 21:48 عصر
توی netbeans هم این error رو میده :
run:Enter matrix row and col :5 5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at javaapplication4.JavaApplication4.main(JavaApplica tion4.java:29)
Enter matrix elements :C:\Users\alien\AppData\Local\NetBeans\Cache\8.1\e xecutor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 6 seconds)
abarkarbar
شنبه 01 خرداد 1395, 23:33 عصر
سلام کد صحیح آن به صورت زیر است:
import java.util.*;
public class matrix_print {
static Scanner console= new Scanner(System.in);
public static void main(String args[]) {
int row,col;
System.out.print("Enter matrix row and col: ");
row = console.nextInt();
col = console.nextInt();
int[][] mx = new int[row][col];
System.out.println("Enter matrix elements: ");
for (int k = 0; k < row; k++) {
for (int l = 0; l < col; l++) {
System.out.print("mx[" + k + "][" + l + "]: ");
mx[k][l] = console.nextInt();
}
}
System.out.println("\nYour Array is below:\n");
for (int k = 0; k < row; k++) {
for (int l = 0; l < col; l++) {
System.out.print(mx[k][l] + "\t");
}
System.out.println();
}
}
}
نمونه ای از خروجی:
140513
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.