2014-02-23 30 views
0

目前我正在讀頭第一個java書。在此期間,我堅持了這個游泳池拼圖。在這個謎題中,我能夠產生完整的輸出,但不能在輸出中產生空白(如下所示)。
游泳池拼圖的手段 - 根據書我需要使用池中的代碼段(這是書中畫),然後將它們放入代碼中的空行。

所以這是我需要把代碼片段的主要代碼。 (--------)
您可以使用一個代碼片段作爲一個空白區域,而不需要使用所有代碼片段。如何解決這首頭java書的難題?

class triangle{ 
double area; 
int height; 
int length; 

public static void main(String[] args){ 
------------ //blank space******** 
-------------- //blank space*********** 
while(-------){ //blank space ********* 

------------------ //blank space******** 
-------.height=(x+1)*2; //blank space******** 
-----.length=x+4; //blank space******** 
-----.setarea(); //blank space****** 

System.out.print("tringle "+x+" , area"); 
System.out.println(" = "+---------.area); //blank space******** 
---------- //blank space******** 

} 
--------- //blank space******** 
x=27; 
triangle t5= ta[2]; 
ta[2].area=343; 
System.out.print("y= " + y); 
System.out.println(" , t5 area = "+t5.area); 
} 
void setarea(){ 
----------=(height*length)/2; //blank space******** 
} 
} 

您可以在上面給出的空格中使用這些代碼片段。您可以多次使用一個代碼片段,而無需使用所有代碼片段。除了下面給出的代碼片段之外,您不能使用任何其他代碼。

triangele[]ta=new triangle[4]; 
triangel ta = new [] triangle[4]; 
triangle [] ta = new triangel[4]; 

x 
y 

area 
ta.area 
ta.x.area 
ta[x].area 

4, t5 area=18.0 
4, t5 area=343.0 
27,t5 area =18.0 
27,t5 area=343.0 

ta[x] setarea(); 
ta.x = setarea(); 
ta[x].setarea(); 

int x; 
int y; 
int x=0; 
int x=1; 
int y=x; 

x=x+1; 
x=x+2; 
x=x-1; 

28.0 
30.0 

ta=new triangle(); 
ta[x]=new triangle(); 
ta.x=new triangle(); 

ta.x 
ta(x) 
ta[x] 

x<4 
x<5 

我需要在控制檯屏幕上產生此輸出。 (我沒有使用任何IDE)
注 - 在給出如下輸出(...........)點線是空白的意思,我們需要打印的地方(......) )這些點線。我無法打印此空白區域,這是我的問題。

triangle 0, area = 4.0 
triangle 1, area = 10.0 
triangle 2, area = 18.0 
triangel 3, area = .......... 
y = ........................ 
+0

不是這個整點弄清楚你的ONW?如果你要求答案,這不算什麼難題。 – Rarw

回答

-1
class triangle{ 
double area; 
int height; 
int length; 

public static void main(String[] args){ 
triangle [] ta = new triangel[4]; 
int x=0; 
while(x<4){ 

------------------ //blank space******** 
ta[x].height=(x+1)*2; //blank space******** 
ta[x].length=x+4; //blank space******** 
ta[x].setarea(); //blank space****** 

System.out.print("tringle "+x+" , area"); 
System.out.println(" = "+ ta[x].area); //blank space******** 
x++ 

} 
int y = 28; 
x=27; 
triangle t5= ta[2]; 
ta[2].area=343; 
System.out.print("y= " + y); 
System.out.println(" , t5 area = "+t5.area); 
} 
void setarea(){ 
area =(height*length)/2; // area should contain the area of the triangle 
} 
} 
+0

不起作用,因爲它給我一個錯誤,說indexarray越界意味着你取x <5,但你可以看到三角形的數組初始化值是4,這就是爲什麼它跨越了它的索引位置。我認爲。 –

+0

對不起我的錯誤。我編輯了修正 – Random

+0

仍然沒有產生所需的輸出。如上面給出的輸出,我需要在上一行和第二行中生成空格。順便說一句,你也不使用增量代碼while循環。 –

0
class Triangle { 
double area; 
int height; 
int length; 

public static void main (String[] args) { 
int x = 0; 
Triangle[] ta = new Triangle[4]; 
while (x < 4) { 

ta[x] = new Triangle(); 
ta[x].height = (x + 1) * 2; 
ta[x].length = x + 4; 
ta[x].setArea(); 

System.out.print("triangle " +x+ ", area"); 
System.out.println(" = " + ta[x].area); 
x = x + 1; 

}//close while 
int y = x; 
x = 27; 
Triangle t5 = ta[2]; 
ta[2].area = 343; 
System.out.print("y = " +y); 
System.out.println(", t5 area = " +t5.area); 
}//close main 

void setArea() { 
area = (height * length)/2; 
}//close setArea() 
}//close class 

上面的代碼的輸出:

triangle 0, area = 4.0 
triangle 1, area = 10.0 
triangle 2, area = 18.0 
triangle 3, area = 28.0 
y = 4, t5 area = 343.0