2 alpha bj Alpha_bj 于 2014.12.16 22:29 提问

问个关于java打印菱形的问题代码如下
for

public class Demo11{
public static void main(String[] args){

int row=20;
int col =row/2;
for(int x=-col;x<=col;x++){
for(int y=-col;y<=col;y++){
if(Math.abs(x)+Math.abs(y)<=col){
System.out.print((char)('a'+Math.abs(y)+Math.abs(x)));
}else{
System.out.print(" ");
}
}
System.out.print("\n");
}

}

}
int col =row/2;这个是干什么用的,什么意思?

5个回答

devmiao
devmiao   Ds   Rxr 2014.12.16 22:37

因为是菱形,所以从中间来看,是左右对称的,col/2就是确定这个中心点。

Alpha_bj
Alpha_bj 那还有x和y都等于-col是什么意思呢?
大约 3 年之前 回复
devmiao
devmiao   Ds   Rxr 2014.12.16 22:48

x代表行,y代表列.........

Alpha_bj
Alpha_bj 能给说下这个程序吗 ? 谢谢
大约 3 年之前 回复
Alpha_bj
Alpha_bj   2014.12.16 22:43

那还有x和y都等于-col是什么意思呢?

zhao525x
zhao525x   2014.12.16 23:43

col = 10;
两个for循环一共运行了21*21=441次。
if条件判断要打印的地方在不在菱形内。在就打印出来。不在就不打印。

Alpha_bj
Alpha_bj 谢谢
大约 3 年之前 回复
xmt1139057136
xmt1139057136   Rxr 2014.12.18 16:49

public class Demo11{
public static void main(String[] args){

int row=20;
int col =row/2;
for(int x=-col;x<=col;x++){
for(int y=-col;y<=col;y++){
if(Math.abs(x)+Math.abs(y)<=col){
System.out.print((char)('a'+Math.abs(y)+Math.abs(x)));
}else{
System.out.print(" ");
}
}
System.out.print("\n");
}
}
}


你这个是坐标打印菱形的方法,row=20.说明了有20行的打印。col/2就是中间的坐标原点。

Alpha_bj
Alpha_bj 谢谢了
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!