用for输出菱形。

import java.util.*;
class temp
{


	public static void main(String []args)
	{
		System.out.println("请输入奇数:");
		Scanner sc=new Scanner(System.in);

		int count=sc.nextInt();
		
		int b=1;
		for (int i=1; i<=count; i++)
		{
			if (!(i%2==0))
			{
				for (int j=count/2+1;j>b;j--)
				{
					System.out.print(" ");
				}
			}
		
			for (int y=1; y<=i; y++)
			{
				if (!(i%2==0))
				{
				System.out.print("*");	
				}
			}

			if (!(i%2==0))
			{
			System.out.println();
			b++;
			}
		}
		int a=1;
		for (int i=count-2; i>0; i--)
		{
			if (!(i%2==0))
			{
				for (int j=0; j<a; j++)
			    {
				System.out.print(" ");
			    }
			}

			for (int y=i; y>0; y--)
			{
				if (!(i%2==0))
				{
				System.out.print("*");	
				}
			}
			if (!(i%2==0))
				{
					
			    System.out.println();
				a++;
				}
		}
	}
}
//硬写出来的奇葩代码。。。

 上面这个是我自己写的 完全没有任何思维  就是用打印空格然后打印星星完成的  硬写出来的

 下面是csdn论坛seacean2000写的

public class Test01 {
    public static void main(String[] args) {
  
             printMatrix(21);
        

    }
	static  void printMatrix(int n){
    if(n%2==0){
      System.out.println("please reset parameter");
    }else{
      for(int i=0;i<(n+1)/2;i++){
         for(int j=0;j<n;j++){
           if((j<(n/2-i)||j>(n/2+i))){
             System.out.printf(" ");
           }else{
             System.out.printf("*");
           }
		   
         }

         System.out.println();//换行
		 }

	   for (int i=n/2-1; i>=0; i--)
	   {
		   for (int j=0; j<n; j++)
		   {
			   if (j<n/2-i||j>n/2+i)
			   {
				   System.out.printf(" ");
			   }else{
					System.out.printf("*");
			   }
		   }
		   System.out.println();
	   }
	}
  }
}

这个主要要用两重循环来写,打印出的矩阵是由*和空格组成的,矩阵的行和列之间的关系如下所示:
每一行都有奇数个符号组成,打印的行数为:每行的符号数加1,然后取对半。
符号之间的规律是:打印*号的区间为从 列数/2-行数 到 列数/2+行数;剩余部分用空格填充  

 

posted on 2013-06-18 19:31  iyon  阅读(381)  评论(1编辑  收藏  举报

导航