关于菱形打印
1  public class Var_02 {	
2	public static void main(String args[]){			
3		for(int i=1;i<=7;i+=2){
4			for(int kong=7;kong>i-1;kong--){
5				System.out.print(" ");
6			}
7			for(int xing=1;xing<=i;xing++){
8				System.out.print("* ");
9			}
10		       System.out.println();
11		}
12		for(int j=1;j<=5;j+=2){
13				for(int kong1=1;kong1<j+3;kong1++){
14					System.out.print(" ");
15				}
16				for(int xing1=5;xing1>=j;xing1--){
17					System.out.print("* ");
18				}
19			System.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");
		}
	}
}