drsina
شنبه 07 دی 1392, 13:44 عصر
سلام .
نمیدونم چرا این کد تا 5 تا رو به صورت درست شون میده ولی بیشتر از 5 رو نشون نمیده .
منطقم کاملا درسته و اررو Out of Bound برای آرایه میده .
توو Netbeans
package mosalas;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
a++;
String[][] array = new String[a][a + (a - 1)];
int je = 1;
float vasat = a / 2;
if (a % 2 != 0) {
vasat = (float) (vasat + 0.5);
}
int AddadVasat = (int) vasat;
for (int i = 1; i < a; i++) {
array[i][AddadVasat + 1] = i + "";
}
//////////////////////////////////////////////
for (int i = 1; i < a; i++) {
for (int j = 1; j < a; j++) {
if(j+i < array.length){
array[i + j][(AddadVasat + 1) - i] = j + "";
array[i + j][(AddadVasat + 1) + i] = j + "";
}
}
}
//////////////////////// show
for (int i = 0; i < a; i++) {
for (int j = 0; j < a + (a - 1); j++) {
if (array[i][j] == null) {
System.out.print("x\t");
} else {
System.out.print(array[i][j] + "\t");
}
}
System.out.println("");
}
}
}
نمیدونم چرا این کد تا 5 تا رو به صورت درست شون میده ولی بیشتر از 5 رو نشون نمیده .
منطقم کاملا درسته و اررو Out of Bound برای آرایه میده .
توو Netbeans
package mosalas;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
a++;
String[][] array = new String[a][a + (a - 1)];
int je = 1;
float vasat = a / 2;
if (a % 2 != 0) {
vasat = (float) (vasat + 0.5);
}
int AddadVasat = (int) vasat;
for (int i = 1; i < a; i++) {
array[i][AddadVasat + 1] = i + "";
}
//////////////////////////////////////////////
for (int i = 1; i < a; i++) {
for (int j = 1; j < a; j++) {
if(j+i < array.length){
array[i + j][(AddadVasat + 1) - i] = j + "";
array[i + j][(AddadVasat + 1) + i] = j + "";
}
}
}
//////////////////////// show
for (int i = 0; i < a; i++) {
for (int j = 0; j < a + (a - 1); j++) {
if (array[i][j] == null) {
System.out.print("x\t");
} else {
System.out.print(array[i][j] + "\t");
}
}
System.out.println("");
}
}
}