用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+行数;剩余部分用空格填充
浙公网安备 33010602011771号