A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张俊生   /  2013-8-16 00:13  /  6470 人查看  /  52 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

xscn 高级黑马 2013-8-16 17:19:14
21#
谢谢版主给通知有拍包活动,但是不知道分拍了,还有没有,还等着进黑马呢,书包诚可贵,黑马价更高
回复 使用道具 举报
本帖最后由 胡智 于 2013-8-16 18:44 编辑


class Print
{
        public static void main(String[] args)
        {
                //num表示菱形的大小
                print1(5);
                print2(6);
                print3(7);

        }
        //*************
        //打一个菱形
        public static void print1(int num)
        {
                if(num<1)
                {
                        System.out.println("哥么,别开玩笑。");
                        System.exit(0);
                }
                for (int x=1;x<num+1 ;x++ )
                {
                        for (int y=1;y<num+1-x;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*x;z++)
                        {
                                if(z==2*x-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }
                for (int x =1;x<num;x++ )
                {
                        for (int y=1;y<x+1 ;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*(num-x);z++ )
                        {
                                if (z==2*(num-x)-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }               
        }
        //*************
        //横着打两个菱形
        public static void print2(int num)
        {
                if(num<1)
                {
                        System.out.println("哥么,别开玩笑。");
                        System.exit(0);
                }
                for (int x=1;x<num+1 ;x++ )
                {
                        for (int y=1;y<num+1-x;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*x;z++)
                        {
                                System.out.print("*");       
                        }
                        for (int a=1;a<2*(num-x)+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*x ;b++ )
                        {
                                if (b==2*x-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<x+1 ;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*(num-x);z++ )
                        {
                                        System.out.print("*");       
                        }
                        for (int a=1;a<2*x+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*(num-x) ;b++ )
                        {
                                if (b==2*(num-x)-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }
        }
        //*************
        //横着打两个,竖着打两个。
        public  static void print3(int num)
        {
                if(num<1)
                {
                        System.out.println("哥么,别开玩笑。");
                        System.exit(0);
                }
                print2(num);
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<num-x;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*x+2;z++)
                        {
                                System.out.print("*");       
                        }
                        for (int a=1;a<2*(num-x)-1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*x+2 ;b++ )
                        {
                                if (b==2*x+1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<x+1 ;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*(num-x);z++ )
                        {
                                        System.out.print("*");       
                        }
                        for (int a=1;a<2*x+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*(num-x) ;b++ )
                        {
                                if (b==2*(num-x)-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");       
                        }
                }

        }
}

回复 使用道具 举报
本帖最后由 封号了... 于 2013-8-16 18:11 编辑
  1.         public static void first(int n){
  2.                 for(int i = 1;i<=9;i++){
  3.                         for (int j = 1; j <= 18; j++) {
  4.                                 if (i<=5) {
  5.                                         if (j<=5-i||(j-5>=i&&j+i<15)||j-13>i) {
  6.                                                 System.out.print(" ");
  7.                                         }else {
  8.                                                 System.out.print("*");
  9.                                         }
  10.                                 }else {
  11.                                         if (i-5>=j||(j+i>14&j-i<5)||j+i>23) {
  12.                                                 System.out.print(" ");
  13.                                         }else {
  14.                                                 System.out.print("*");
  15.                                         }
  16.                                 }
  17.                         }
  18.                         System.out.println();
  19.                 }
  20.         }
复制代码


    *        *   
   ***      ***   
  *****    *****  
*******  *******
******************
*******  *******
  *****    *****  
   ***      ***   
    *        *   
2个菱形的做出来了,
竖向的可以N,但是横向的只能固定2了!

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
  1. <blockquote>class PrintExtend
复制代码
回复 使用道具 举报
本帖最后由 胡智 于 2013-8-16 18:42 编辑

class PrintExtend
{
        public static void main(String[] args)
        {
                print(5,4);
               
        }
//num指的菱形的大小,count代表横着菱形重复个数。
        public static void printUp(int num,int count)
        {
                if(num<1||count<0)
                {
                        System.out.println("哥么,别开玩笑。");
                        System.exit(0);
                }
                for (int x=1;x<num+1 ;x++ )
                {
                        for (int y=1;y<num+1-x;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*x;z++)
                        {
                                System.out.print("*");        
                        }
                        //
                        for (int co=0;co<=count;co++ )
                        {
                                for (int a=1;a<2*(num-x)+1;a++ )
                                {
                                        System.out.print(" ");
                                }
                                for (int b=1;b<2*x ;b++ )
                                {
                                        System.out.print("*");        
                                }
                        }
                        //
                        for (int a=1;a<2*(num-x)+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*x ;b++ )
                        {
                                if (b==2*x-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");        
                        }
                }
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<x+1 ;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*(num-x);z++ )
                        {
                                        System.out.print("*");        
                        }
                        //
                        for (int co=0;co<=count;co++ )
                        {
                                for (int c=1;c<2*x+1;c++ )
                                {
                                        System.out.print(" ");
                                }
                                for (int d=1;d<2*(num-x) ;d++ )
                                {
                                        System.out.print("*");        
                                }
                        }
                        //
                        for (int a=1;a<2*x+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*(num-x) ;b++ )
                        {
                                if (b==2*(num-x)-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");        
                        }
                }
        }
        public static void print(int num,int count)
        {
                printUp(num,count);
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<num-x;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*x+2;z++)
                        {
                                System.out.print("*");        
                        }
                        //
                        for (int co=0;co<=count;co++ )
                        {
                                for (int a=1;a<2*(num-x)-1;a++ )
                                {
                                        System.out.print(" ");
                                }
                                for (int b=1;b<2*x+2 ;b++ )
                                {
                                        System.out.print("*");        
                                }
                        }
                        //
                        for (int a=1;a<2*(num-x)-1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*x+2 ;b++ )
                        {
                                if (b==2*x+1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");        
                        }
                }
                for (int x=1;x<num ;x++ )
                {
                        for (int y=1;y<x+1 ;y++ )
                        {
                                System.out.print(" ");
                        }
                        for (int z=1;z<2*(num-x);z++ )
                        {
                                        System.out.print("*");        
                        }
                        //
                        for (int co=0;co<=count;co++ )
                        {
                                for (int c=1;c<2*x+1;c++ )
                                {
                                        System.out.print(" ");
                                }
                                for (int d=1;d<2*(num-x) ;d++ )
                                {
                                        System.out.print("*");        
                                }
                        }
                        //
                        for (int a=1;a<2*x+1;a++ )
                        {
                                System.out.print(" ");
                        }
                        for (int b=1;b<2*(num-x) ;b++ )
                        {
                                if (b==2*(num-x)-1)
                                        System.out.println("*");
                                else
                                        System.out.print("*");        
                        }
                }
        }
        
}

菱形.png (3.38 KB, 下载次数: 6)

菱形.png

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
  1. public static void main(String[] args)
  2.         {  
  3.                
  4.                 for (int x=1 ; x<=5 ;x++ )
  5.                 {
  6.                         for (int n= 1;n <=5-x ;n++ )
  7.                         {
  8.                                 System.out.print(" ");
  9.                         }
  10.                         for (int y = 1 ; y<=x*2-1 ;y++ )
  11.                         {
  12.                                 System.out.print("*");
  13.                         }

  14.                         System.out.println();
  15.                 }
  16.        
  17.                 for (int x=1 ; x<=5 ;x++ )
  18.                 {
  19.                         for (int n= 1;n <=x ;n++ )
  20.                         {
  21.                                 System.out.print(" ");
  22.                         }
  23.                         for (int y = 1 ; y<=10-x*2-1 ;y++ )
  24.                         {
  25.                                 System.out.print("*");
  26.                         }

  27.                         System.out.println();
  28.                 }
  29.                
  30.         }
  31.        
复制代码
只能打出一个

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
不知到怎么设置仅作者可见
回复 使用道具 举报
我做出来了,等会发
回复 使用道具 举报
/**
* 题目 : 打任意X乘Y个菱形
*
* 思路:一行一行的打印。
*      每个菱形是9*9的正方形,但是连接处少了一行和一列,
*      因此,每一个菱形我只打印8*8,剩下的一行一列由下一个菱形去补齐
*      最后再补齐剩下的一行一列就行了
*
* */

class text {
    //此方法一次性打印一行菱形的某一行
        public static void hang(int x, int y){
                StringBuilder s = new  StringBuilder();
                for (int j = 0; j < x; j++) {
                        for (int i = 0; i < 8; i++) {
                        //判断哪个地方打印 “ ”,或者是“*”
                                if(y<=4){
                                        if(Math.abs(4-i)>y) s.append(" ");
                                        else s.append("*");
                                }
                                else {
                                        if(Math.abs(4-i)>(8-y)) s.append(" ");
                                        else s.append("*");
                                }
                        }
                }
                //补齐最后一列的符号
                if(y!=4) s.append(" ");
                else s.append("*");
                System.out.println(s);
        }
        //此方法打印一行的所有菱形
        public static void lingxing(int x,int y){
                //循环了y行
                for (int j = 0; j < y; j++) {
                        for (int i =  0; i <8; i++) {
                                hang(x,i);
                        }
                }
                //补齐最后一行菱形的最后一行
                hang(x,0);
        }

    public static void main(String[] args) {
            //自己制定x,y。x是列数,y是行数
            int x,y;
            x=5;
            y=2;
            lingxing(x,y);
    }

}
有错误跟我说一声,我运行没有问题

评分

参与人数 1技术分 +2 收起 理由
张俊生 + 2 恩做的不错,运行没问题

查看全部评分

回复 使用道具 举报
x,y可以自行指定,楼主可以检验,O(∩_∩)O~

QQ图片20130816210010.jpg (69.36 KB, 下载次数: 7)

这是我的运行结果

这是我的运行结果
回复 使用道具 举报
本帖最后由 牛牛 于 2013-8-16 22:41 编辑
  1. import java.util.Scanner;

  2. /**
  3. * 1.打印一个(多个)菱形
  4. */
  5. public class Exercise_9 {
  6.        
  7.         public static void main(String[] args) {
  8.                 Scanner input = new Scanner(System.in);
  9.                 System.out.println("请输入菱形x轴长度(1=*)(要为奇数):");
  10.                 int count = input.nextInt();
  11.                 System.out.println("请输入菱形行数:");
  12.                 int xcount = input.nextInt();
  13.                 System.out.println("请输入菱形列数:");
  14.                 int ycount = input.nextInt();
  15.                 //循环行
  16.                 for (int y = 1; y <= ycount; y++) {
  17.                         //循环上半列
  18.                         for(int i=1;i<=count/2+1;i++){
  19.                                 for(int x = 1;x<=xcount;x++){
  20.                                         for(int j=1;j<=count/2+1-i;j++){
  21.                                                 System.out.print(" ");
  22.                                         }
  23.                                         for(int j=1;j<=2*i-1;j++){
  24.                                                 System.out.print("*");
  25.                                         }
  26.                                         for(int j=1;j<=count/2+1-i;j++){
  27.                                                 System.out.print(" ");
  28.                                         }
  29.                                 }
  30.                                 System.out.println();
  31.                         }
  32.                         //循环下半列
  33.                         for(int i=count/2;i>=1;i--){
  34.                                 for(int x = 1;x<=xcount;x++){
  35.                                         for(int j=count/2+1-i;j>=1;j--){
  36.                                                 System.out.print(" ");
  37.                                         }
  38.                                         for(int j=2*i-1;j>=1;j--){
  39.                                                 System.out.print("*");
  40.                                         }
  41.                                         for(int j=count/2+1-i;j>=1;j--){
  42.                                                 System.out.print(" ");
  43.                                         }
  44.                                 }
  45.                                 System.out.println();
  46.                         }
  47.                         System.out.println();
  48.                 }
  49.         }
  50. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
本帖最后由 黄文军 于 2013-8-17 10:23 编辑



刚开始看错了,又改了下
  1. class  LingXing
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 print(2,5);
  6.         }

  7.         //定义方法用以打印菱形
  8.         static void print(int wNum ,int lNum )
  9.         {
  10.                
  11.                 int c=0;
  12.                 for(int wn =0;wn<wNum;wn++)//定义有多少行菱形
  13.                 {
  14.                         
  15.                         for(int a=1;a<9;a++)
  16.                         {        
  17.                                 //第一行
  18.                                 if(wn==0&&c==0)
  19.                                 {
  20.                                         for(int ln=0;ln<lNum;ln++)
  21.                                         {
  22.                                                 for(int a1 =0;a1<4;a1++)//前面的空格
  23.                                                 {
  24.                                                         System.out.print(" ");
  25.                                                 }

  26.                                                 for(int a1=0 ;a1<1;a1++)//形成菱形的“*”
  27.                                                 {
  28.                                                         System.out.print("*");
  29.                                                 }

  30.                                                 for(int a1=0 ;a1<4;a1++)//后面的空格
  31.                                                 {
  32.                                                         System.out.print(" ");
  33.                                                 }

  34.                                         }
  35.                                         System.out.println();        
  36.                                 }        

  37.                                 for(int ln=0;ln<lNum;ln++)//定义有多少列菱形
  38.                                 {

  39.                                                 if(a<5)//菱形上半部分
  40.                                         {
  41.                                                 for(int a1 =0;a1<9/2-a;a1++)//前面的空格
  42.                                                 {
  43.                                                         System.out.print(" ");
  44.                                                 }

  45.                                                 for(int a1=0 ;a1<a*2+1;a1++)//形成菱形的“*”
  46.                                                 {
  47.                                                         System.out.print("*");
  48.                                                 }

  49.                                                 for(int a1=0 ;a1<9/2-a;a1++)//后面的空格
  50.                                                 {
  51.                                                         System.out.print(" ");
  52.                                                 }
  53.                                         }else{//菱形下半部分
  54.                                                 for(int a1=0 ;a1<a-4;a1++)//前面的空格
  55.                                                 {
  56.                                                         System.out.print(" ");
  57.                                                 }

  58.                                                 for(int a1=0;a1<(9-a)*2-1;a1++)//形成菱形的“*”
  59.                                                 {
  60.                                                         System.out.print("*");
  61.                                                 }

  62.                                                 for(int a1=0;a1<a-4;a1++)//前面的空格
  63.                                                 {
  64.                                                         System.out.print(" ");
  65.                                                 }
  66.                                         }
  67.                                 }
  68.                                 c++;
  69.                                 System.out.println();//换行
  70.                         }
  71.                         
  72.                 }
  73.         }
  74. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 左右也公用一个*

查看全部评分

回复 使用道具 举报
  1. package Month08;

  2. /*
  3. * 打印菱形
  4. *
  5. */
  6. public class Day16 {
  7.         public static void main(String[] args) {
  8.                 print(1, 1);// 打印一个菱形
  9.                 print(1, 2);// 打印两个菱形
  10.                 print(2, 2);// 打印相邻四个菱形

  11.         }

  12.         public static void print(int x, int y) {// 打印x乘以y个菱形的方法
  13.                 String[][] str1 = {
  14.                                 { " ", " ", " ", " ", "*", " ", " ", " ", " " },
  15.                                 { " ", " ", " ", "*", "*", "*", " ", " ", " " },
  16.                                 { " ", " ", "*", "*", "*", "*", "*", " ", " " },
  17.                                 { " ", "*", "*", "*", "*", "*", "*", "*", " " },
  18.                                 { "*", "*", "*", "*", "*", "*", "*", "*", "*" },
  19.                                 { " ", "*", "*", "*", "*", "*", "*", "*", " " },
  20.                                 { " ", " ", "*", "*", "*", "*", "*", " ", " " },
  21.                                 { " ", " ", " ", "*", "*", "*", " ", " ", " " },
  22.                                 { " ", " ", " ", " ", "*", " ", " ", " ", " " }, };
  23.                
  24.                
  25.                
  26.                 for (int x1 = 1; x1 <= x; x1++) {
  27.                         for (int i = 0; i < str1.length; i++) {
  28.                                 for (int y1 = 1; y1 <= y; y1++) {
  29.                                         for (int j = 0; j < str1[i].length; j++) {
  30.                                                 System.out.print(str1[i][j]);
  31.                                         }
  32.                                 }
  33.                                 System.out.println();
  34.                         }
  35.                 }
  36.         }

  37. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 相邻 公用一个*

查看全部评分

回复 使用道具 举报
本帖最后由 谢铭 于 2013-8-16 23:55 编辑

  1. class ForDemo{
  2. public static void main(String [] args){
  3.   System.out.println("打印一个菱形");
  4.   for(int a=1; a<=5; a++){  //控制上半部
  5.    for(int b=1; b<=5-a; b++){  
  6.     System.out.print(" ");
  7.    }
  8.    for(int c=1; c<=a; c++){  
  9.    System.out.print("*");
  10.    }
  11.    for(int d=1; d<a; d++){  
  12.     System.out.print("*");
  13.    }
  14.    System.out.println();
  15.   }
  16.   for(int e=1; e<=4; e++){  //控制下半部
  17.    for(int f=1; f<=e; f++){
  18.     System.out.print(" ");
  19.    }
  20.    for(int g=1; g<=5-e; g++){  
  21.     System.out.print("*");
  22.    }
  23.    for(int h=1; h<5-e; h++){
  24.     System.out.print("*");
  25.    }
  26.    System.out.println();
  27.   }
  28.   System.out.println("打印两个菱形");
  29.   for(int a=1; a<=5; a++){
  30.    for(int b=1; b<=5-a; b++){  
  31.     System.out.print(" ");
  32.    }
  33.    for(int c=1; c<=a; c++){  
  34.    System.out.print("*");
  35.    }
  36.    for(int d=1; d<a; d++){  
  37.     System.out.print("*");
  38.    }
  39.    for(int b=1; b<=5-a; b++){
  40.     System.out.print(" ");
  41.    }
  42.    for(int b=1; b<=4-a; b++){
  43.     System.out.print(" ");
  44.    }
  45.    for(int c=1; c<=a; c++){
  46.    System.out.print("*");
  47.    }
  48.    if(a==5){
  49.     System.out.print("***");
  50.     }else{
  51.      for(int d=1; d<a; d++){
  52.      System.out.print("*");
  53.    }
  54.    }
  55.    System.out.println();   
  56.   }
  57.   for(int e=1; e<=4; e++){
  58.    for(int f=1; f<=e; f++){
  59.     System.out.print(" ");
  60.    }
  61.    for(int g=1; g<=5-e; g++){
  62.     System.out.print("*");
  63.    }
  64.    for(int h=1; h<5-e; h++){
  65.     System.out.print("*");
  66.    }
  67.    for(int f=1; f<=e; f++){
  68.     System.out.print(" ");
  69.    }
  70.    for(int f=1; f<e; f++){
  71.     System.out.print(" ");
  72.    }
  73.    for(int g=1; g<=5-e; g++){
  74.     System.out.print("*");
  75.    }
  76.    for(int h=1; h<5-e; h++){
  77.     System.out.print("*");
  78.    }
  79.    System.out.println();
  80.   }
  81.   System.out.println("打印四个菱形");
  82.   for(int a=1; a<=5; a++){  //外循环控制执行的次数为5次
  83.    for(int b=1; b<=5-a; b++){
  84.     System.out.print(" ");
  85.    }
  86.    for(int c=1; c<=a; c++){
  87.    System.out.print("*");
  88.    }
  89.    for(int d=1; d<a; d++){
  90.     System.out.print("*");
  91.    }
  92.    for(int b=1; b<=5-a; b++){
  93.     System.out.print(" ");
  94.    }
  95.    for(int b=1; b<=4-a; b++){
  96.     System.out.print(" ");
  97.    }
  98.    for(int c=1; c<=a; c++){
  99.    System.out.print("*");
  100.    }
  101.    if(a==5){    //第二个三角形右侧,当打印到第五行时,进行一次判断,
  102.     System.out.print("***");
  103.     }else{
  104.      for(int d=1; d<a; d++){
  105.      System.out.print("*");
  106.    }
  107.    }
  108.    System.out.println();
  109.   }
  110.   for(int e=1; e<=4; e++){  //控制执行的次数为4次,这里是打印下半部的代码
  111.    for(int f=1; f<=e; f++){
  112.     System.out.print(" ");
  113.    }
  114.    for(int g=1; g<=5-e; g++){
  115.     System.out.print("*");
  116.    }
  117.    for(int h=1; h<5-e; h++){
  118.     System.out.print("*");
  119.    }
  120.    for(int f=1; f<=e; f++){
  121.     System.out.print(" ");
  122.    }
  123.    for(int f=1; f<e; f++){
  124.     System.out.print(" ");
  125.    }
  126.    for(int g=1; g<=5-e; g++){
  127.     System.out.print("*");
  128.    }
  129.    for(int h=1; h<5-e; h++){
  130.     System.out.print("*");
  131.    }
  132.    System.out.println();
  133.   }
  134.   /*下面这段代码是控制下半部的*/
  135.   for(int a=2; a<=5; a++){  //外循环控制执行的次数为4次
  136.    for(int b=1; b<=5-a; b++){  
  137.     System.out.print(" ");
  138.    }
  139.    for(int c=1; c<=a; c++){  
  140.    System.out.print("*");
  141.    }
  142.    for(int d=1; d<a; d++){  
  143.     System.out.print("*");
  144.    }
  145.    for(int b=1; b<=5-a; b++){
  146.     System.out.print(" ");
  147.    }
  148.    for(int b=1; b<=4-a; b++){
  149.     System.out.print(" ");
  150.    }
  151.    for(int c=1; c<=a; c++){  
  152.    System.out.print("*");
  153.    }
  154.    if(a==5){    //当外循环执行到第5次的时候,只执行该段代码
  155.     System.out.print("***");
  156.     }else{   //否则执行其它的代码
  157.      for(int d=1; d<a; d++){
  158.      System.out.print("*");
  159.    }
  160.    }
  161.    System.out.println();
  162.   }
  163.   for(int e=1; e<=4; e++){  //控制执行的次数为4次,这里是打印下半部的代码
  164.    for(int f=1; f<=e; f++){
  165.     System.out.print(" ");
  166.    }
  167.    for(int g=1; g<=5-e; g++){
  168.     System.out.print("*");
  169.    }
  170.    for(int h=1; h<5-e; h++){
  171.     System.out.print("*");
  172.    }
  173.    for(int f=1; f<=e; f++){
  174.     System.out.print(" ");
  175.    }
  176.    for(int f=1; f<e; f++){
  177.     System.out.print(" ");
  178.    }
  179.    for(int g=1; g<=5-e; g++){
  180.     System.out.print("*");
  181.    }
  182.    for(int h=1; h<5-e; h++){
  183.     System.out.print("*");
  184.    }
  185.    System.out.println();
  186.   }      
  187. }
  188. }
复制代码
注:因为学习的原因,加上看到这个帖子的时间比较晚,时间很紧张,没能优化代码,只是由for循环和if语句组成,今晚时间比较晚了,还要预习明天的课程,明天晚上是第二次阶段性测试,这里先不优化代码了,请见谅。
格式在本地编辑是好的,我调好了,但是复制到帖子里就有点乱了,调了还是这样,影响阅读,请见谅。

为了便于查看,我没有调整打印。

评分

参与人数 1技术分 +2 收起 理由
张俊生 + 2 出来了,就是太乱,很难让人看懂.

查看全部评分

回复 使用道具 举报
  1. import java.util.Scanner;

  2. public class Demo5 {
  3.         
  4.         //已经将菱形中间的点看成(4,4),那么*到该点的距离如果小于5则为'*',其他则为' ',
  5.         
  6.         public static void main(String[] args) {
  7.                 Scanner s = new Scanner(System.in);
  8.                 System.out.println("打印m列n行的菱形");
  9.                 System.out.println("你输入的列数n为:");
  10.                 int m=s.nextInt();
  11.                 System.out.println("你输入的行数m为:");
  12.                 int n=s.nextInt();
  13.                
  14.                
  15.                 for (int y = 0; y < 9+8*m; y++) {//控制列数,第一列为9,之后多一个就加8
  16.                         for (int x = 0; x <9+8*n; x++) {//控制行数,第一行为9,之后多一菱形加8个位置
  17.                                 if (Math.abs(x % 8 - 4) + Math.abs(y % 8 - 4) < 5) {
  18.                                         System.out.print("*");
  19.                                 } else {
  20.                                         System.out.print(" ");
  21.                                 }
  22.                         }
  23.                         System.out.println();
  24.                 }
  25.                
  26.         }
  27. }
复制代码
楼主 给分啊 急缺分啊  花了我2个多小时  不容易啊

评分

参与人数 1技术分 +3 收起 理由
张俊生 + 3 做的不错

查看全部评分

回复 使用道具 举报
怎么设置隐藏啊
回复 使用道具 举报
public class Diamond {

  public static void main(String[] args) {
   
   int hang=3 , lie=7;//确定要打印的行数与列数
   //打印第一排
   printSpace(5 - 1);
   printWord(2 * 1 - 1);
   printSpace(5 - 1);   
   for (int j = 1; j < lie; j++) {
    printSpace(4 - 1);
    printWord(2 * 1 - 1);
    printSpace(5 - 1);
   }
   System.out.println();
   for (int x = 0; x < hang; x++) {//对行进行循环
   //打印上半段
   for (int i = 2; i <= 4; i++) {
    printSpace(5 - i);
    printWord(2 * i - 1);
    printSpace(5 - i);   
    for (int j = 1; j < lie; j++) {
     printSpace(4 - i);
     printWord(2 * i - 1);
     printSpace(5 - i);
    }
    System.out.println();//每打一行就换行
   }
   //打印中间一行
   printWord(8*lie+1);
   System.out.println();
   //打印下半段
   for (int i = 4; i > 0; i--) {
    printSpace(5 - i);
    printWord(2 * i - 1);
    printSpace(5 - i);
    for (int j = 1; j < lie; j++) {
     printSpace(4 - i);
     printWord(2 * i - 1);
     printSpace(5 - i);
    }
    System.out.println();//每打一行就换行
   }
  }
     }
  
  public static void printSpace(int m){//打印空格的方法
   for (int i = 0; i < m; i++) {
   System.out.print(" ");
  }
  }
  
  public static void printWord(int m){//打印*的方法
   for (int i = 0; i < m; i++) {
   System.out.print("*");
  }
  }
}

这个可以打印扩展任意数量的菱形,只要在第一行输入行数和列数就可以了

评分

参与人数 1技术分 +2 收起 理由
张俊生 + 2 做的不错

查看全部评分

回复 使用道具 举报
gulup 中级黑马 2013-8-17 01:41:09
38#
  1. class Test
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 test(6,5,3);
  6.         }

  7.         public static void test(int size,int x,int y){
  8.                 for(int n = 0; n < y; n++){
  9.                         for (int i = 1; i <= size; i++) {
  10.                                 for (int j = i; j < size; j++) {
  11.                                         System.out.print(" ");
  12.                                 }
  13.                                 for (int k = 1; k <= 2 * i - 1; k++) {
  14.                                         System.out.print("*");
  15.                                 }
  16.                                 for(int q = 1; q < x; q++){
  17.                                         for(int z = 0; z < 2; z++){
  18.                                                 for (int j = i; j < size; j++) {
  19.                                                         System.out.print(" ");
  20.                                                 }
  21.                                         }
  22.                                         for (int k = 1; k <= 2 * i - 1; k++) {
  23.                                                 System.out.print("*");
  24.                                         }
  25.                                 }
  26.                                 System.out.println();
  27.                         }

  28.                         for (int i = size - 1; i >= 1; i--) {
  29.                                 for (int j = 1; j <= size - i; j++) {
  30.                                         System.out.print(" ");
  31.                                 }
  32.                                 for (int k = 2 * i - 1; k > 0; k--) {
  33.                                         System.out.print("*");
  34.                                 }
  35.                                 for(int q = 1; q < x; q++){
  36.                                         for(int z = 0; z < 2; z++){
  37.                                                 for (int j = 1; j <= size - i; j++) {
  38.                                                         System.out.print(" ");
  39.                                                 }
  40.                                         }
  41.                                         for (int k = 2 * i - 1; k > 0; k--) {
  42.                                                 System.out.print("*");
  43.                                         }
  44.                                 }
  45.                                 System.out.println();
  46.                         }
  47.                 }
  48.                
  49.         }
  50. }
复制代码


可以定义菱形大小,x行y列。循环太多了。。太晚了,随便写了。懒得修改了。不知道能给几分。

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云,相邻公用一个*

查看全部评分

回复 使用道具 举报
jrry 中级黑马 2013-8-17 02:08:14
39#
  1. package test;
  2. /**
  3. * 打印图形
  4. * @author jerry
  5. *
  6. */
  7. public class PrintSharp {
  8.         public static void main(String[] args) {
  9.                 printDiamond(4, 4);
  10.         }
  11.         /**
  12.          * 打印上三角
  13.          * @param xHeng 横排个数
  14.          * @param index 竖列位置
  15.          */
  16.         private static void upTriangle(int xHeng,int index) {
  17.                 for (int i = index; i < 5; i++) {
  18.                         for (int h = 0; h < xHeng; h++) {
  19.                                 for (int j = i; j < 4; j++) {
  20.                                         System.out.print(" ");
  21.                                 }
  22.                                 if (h > 0) {
  23.                                         for (int j = i; j < 3; j++) {
  24.                                                 System.out.print(" ");
  25.                                         }
  26.                                         for (int m = 0; m <= 2 * i; m++) {
  27.                                                 if (m != 8) {
  28.                                                         System.out.print("*");
  29.                                                 }
  30.                                         }
  31.                                 } else {
  32.                                         for (int m = 0; m <= 2 * i; m++) {
  33.                                                 System.out.print("*");
  34.                                         }
  35.                                 }
  36.                         }
  37.                         System.out.println();
  38.                 }
  39.         }
  40.         /**
  41.          * 打印倒三角
  42.          * @param xHeng 横排个数
  43.          */
  44.         private static void downTriangle(int xHeng) {
  45.                 for (int i = 0; i < 4; i++) {
  46.                         for (int h = 0; h < xHeng; h++) {
  47.                                 for (int j = 0; j < i + 1; j++) {
  48.                                         System.out.print(" ");
  49.                                 }
  50.                                 if (h > 0) {
  51.                                         for (int j = 0; j < i; j++) {
  52.                                                 System.out.print(" ");
  53.                                         }
  54.                                         for (int m = 7; m > 2 * i; m--) {
  55.                                                 System.out.print("*");
  56.                                         }
  57.                                 } else {
  58.                                         for (int m = 7; m > 2 * i; m--) {
  59.                                                 System.out.print("*");
  60.                                         }
  61.                                 }
  62.                         }
  63.                         System.out.println();
  64.                 }
  65.         }
  66.         /**
  67.          * 打印菱形
  68.          * @param xHeng 横排个数
  69.          * @param yShu 竖排个数
  70.          */
  71.         private static void printDiamond(int xHeng, int yShu) {
  72.                 for (int p = 0; p < yShu; p++) {
  73.                         //先打印上三角,第一次循环即打印的第一横排需循环打印5次,以后打印只需循环打印4次,
  74.                         if (p==0)
  75.                                 upTriangle(xHeng,0);
  76.                          else
  77.                                 upTriangle(xHeng,1);
  78.                         //再打印倒三角
  79.                         downTriangle(xHeng);
  80.                 }
  81.         }
  82. }
复制代码

评分

参与人数 1技术分 +2 收起 理由
张俊生 + 2 不错

查看全部评分

回复 使用道具 举报
  1. package com.zhang;

  2. /*
  3. * 题目:打印 任意X乘Y个菱形
  4. * 思路:
  5. * 1.首先要定义出一个菱形
  6. * 2.然后再想如何控制行数和列数
  7. */
  8. public class outprint {

  9.         public static void main(String[] args) {
  10.                 //定义一个2行3列的图形
  11.                 ok(1, 3);
  12.         }
  13.         //控制行数
  14.         public static void ok(int e,int w){
  15.                 for(int x = 0;x<e;x++){
  16.                         print(w);
  17.                 }
  18.         }
  19.         //控制列数
  20.         public static void print(int w){
  21.                 for(int x=1;x<=9;x++){
  22.                         if (x <= 5) {
  23.                                 //控制列数
  24.                                 for(int q=0;q<w;q++){
  25.                                         //控制前面空格
  26.                                         for (int z = 1; z < 6 - x; z++) {
  27.                                                 System.out.print(" ");
  28.                                         }
  29.                                         //控制中间*个数
  30.                                         for (int y = 0; y < x * 2 - 1; y++) {
  31.                                                 System.out.print("*");
  32.                                         }
  33.                                         //控制后面空格
  34.                                         for (int z = 0; z < 5 - x; z++) {
  35.                                                 System.out.print(" ");
  36.                                         }
  37.                                 }
  38.                         }
  39.                         if(x>5){
  40.                                 //控制列数
  41.                                 for(int q=0;q<w;q++){
  42.                                         //控制前面空格
  43.                                         for (int z = 0; z < x - 5; z++) {
  44.                                                 System.out.print(" ");
  45.                                         }
  46.                                         //控制中间*个数
  47.                                         for (int y = 0; y < (9 - x) * 2 + 1; y++) {
  48.                                                 System.out.print("*");
  49.                                         }
  50.                                         //控制后面空格
  51.                                         for (int z = 0; z < x - 5; z++) {
  52.                                                 System.out.print(" ");
  53.                                         }
  54.                                 }
  55.                         }
  56.                         System.out.println();
  57.                 }
  58.         }
  59. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张俊生 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马