首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于菱形打印解决思路

2012-05-15 
关于菱形打印1public class Var_02 {2public static void main(String args[]){3for(int i1i7i+2){4

关于菱形打印
1 public class Var_02 {
2public static void main(String args[]){
3for(int i=1;i<=7;i+=2){
4for(int kong=7;kong>i-1;kong--){
5System.out.print(" ");
6}
7for(int xing=1;xing<=i;xing++){
8System.out.print("* ");
9}
10 System.out.println();
11}
12for(int j=1;j<=5;j+=2){
13for(int kong1=1;kong1<j+3;kong1++){
14System.out.print(" ");
15}
16for(int xing1=5;xing1>=j;xing1--){
17System.out.print("* ");
18}
19System.out.println();
20}
21 }
22 }
上边怎么打印出的菱形啊 没看懂 好比1-11行打印上半个菱形,先打印了7个空格,然后带你一个* 那个*怎么能保证放在中间位置的?另外,如果把8和17引号内改成只有一个*,而不是*和空格,则只打印左侧菱形, 搞不懂啊搞不懂...

[解决办法]
我的代码:
public class printDiamond {
public static void main(String[] args){
//利用while循环判断用户输入的是否是奇数
Scanner input=new Scanner(System.in);
System.out.print("请输入菱形行数: ");
int rows=input.nextInt();
while(rows%2==0)
{
System.out.println("请输入奇数: ");
rows=input.nextInt();
}
//分步打印。先打印菱形的上半部
int n=(rows+1)/2;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i;j++)
System.out.print(" ");
for(int k=1;k<=2*i-1;k++)
System.out.print("*");
System.out.print("\n");
}
//分步答应。打印菱形的下半部
for(int i=1;i<=rows-n;i++)
{
for(int j=1;j<=i;j++)
System.out.print(" ");
for(int k=1;k<=2*(rows-n-i+1)-1;k++)
System.out.print("*");
System.out.print("\n");
}
}

}

热点排行