分享

菱形

 昵称3600459 2010-09-27
输出如图所示:
     *
    * *
   *   *
  *     *
 *       *
*         *
 *       *
  *     *
   *   *
    * *
     *
自己写的程序如下:
public class Lklingxing{
    public static void main(String args[]){
        for(int i=0;i<6;i++){
            for(int j=5;j>i;j--){
             System.out.print(" ");
            }
            for(int a=0;a<2*i+1;a++){
             switch(a){
                 case 0:{
                  System.out.print("*");
                  break;
                 }
                 default:{
                  if(a==2*i){
                      System.out.print("*");
                  }
                  System.out.print(" ");
                 }
             }
            }
            System.out.println();
        }
        for(int k=0;k<5;k++){
            for(int l=0;l<=k;l++){
             System.out.print(" ");
            }
            for(int b=10;b>2*k+1;b--){
             switch(b){
                 case 10:{
                  System.out.print("*");
                  break;
                 }
                 default:{
                  if(b==2*k){
                      System.out.print("*");
                  }
                  System.out.print(" ");
                 }
             }
            }                                  
              System.out.println();   
        }
    }
}


输出的图形为:
     *
    * *
   *   *
  *     *
 *       *
*         *
 *       
  *     
   *   
    * 
     *
现在已经大概知道那句错误,但是不知道怎么改,哪位大哥帮忙修改一下,谢谢了!
    

2楼

if(b==2*k){ 
 System.out.print("*");
}

此句有错误,是控制右下角那条斜线的,但是不知道怎么改,希望哪位大哥的帮忙改下

3楼

for(int b=10;b>2*k+1;b--){
将上句中的判断语句改为的 b > 2*k - 1试试

5楼

package webjava.answer.my;

import java.util.Scanner;

public class Diamond {
public static void main(String[] args) {

int diamondWidth = 0; //菱形宽度
int midBlank = 1; //中间空格数
int leftBlank = 0; //左边空格数

Scanner input = new Scanner(System.in);

//只有输入奇数才可显示菱形,因为菱形要对称,正中的一行加上上下的对称部分为:1+偶数 = 奇数
//不明白这点的多动手画下,毕竟不是线条
System.out.println("你想要的菱形宽度,输入奇数:");
diamondWidth = input.nextInt();
leftBlank = (diamondWidth - 1) / 2; //(奇数 - 1)/ 2 = 左边空格数 

//第一行
for(int i = 1; i <= leftBlank; i++){
System.out.print(" ");
}
System.out.println("*");
leftBlank--;

//第二行到中间那行
for(int i = 2; i <= (diamondWidth - 1) / 2 + 1; i++){ //输出上半部分

for(int j = 1; j <= leftBlank; j++){//输出左边空格
System.out.print(" ");
}
leftBlank--; //修改下一行的左边空格数
System.out.print("*"); //输出第一个*

for(int j = 1; j <= midBlank; j++){ //输出中间空格
System.out.print(" ");
}
midBlank += 2; //修改下一行的中间空格数
System.out.println("*"); //输出第二个*
}

//中间那行下面到倒数第二行
for(int i = (diamondWidth - 1) / 2; i >= 2; i--){ //输出下半部分

for(int j = 1; j <= leftBlank + 2; j++){//输出左边空格
System.out.print(" ");
}
leftBlank++; //修改下一行的左边空格数
System.out.print("*"); //输出第一个*

for(int j = 1; j <= midBlank - 4; j++){ //输出中间空格
System.out.print(" ");
}
midBlank -= 2; //修改下一行的中间空格数
System.out.println("*"); //输出第二个*


}

//最后一行
for(int i = 1; i <= leftBlank + 2; i++){
System.out.print(" ");
}
System.out.println("*");
}
}

6楼

我就喜欢做数学题。。。
此题吸引了我,所以又整晚了。。
这个代码不仅能画出你要的,还能要多大的菱形就画多大的菱形,只要不越界,只要你的电脑屏幕足够大

睡觉了,明天还要学HTML

7楼

注:输入偶数也可以

因为我写的都是INT

9楼

for(b=8;2*k-1;b--)即可
119.250.141.*

10楼

public class lingxing{
public static void main(String args[]){
     for(int i=0;i<6;i++){
         for(int j=5;j>i;j--){
             System.out.print(" ");
         }
         for(int a=0;a<2*i+1;a++){
             switch(a){
                 case 0:{System.out.print("*");
                 }
                 default:{if(a==2*i){
                     System.out.print("*");}
                     System.out.print(" ");                        
                 }                    
                 }
             }
         System.out.println();
         }
    
     for(int k=1;k<=5;k++){
         for(int i=0;i<=10-k;i++){
             if(i==k){
                 System.out.print("*");
             }
             System.out.print(" ");
             if(i==9-k){
                 System.out.print("*");
             }
         }
     System.out.println();    
     }
   }
}

这样行吗?

11楼


public   class printlingxing{
    static int line,i,k;
    public static void main(String args[]){
   
      for(line=6;line>0;line--){
       for(i=0;i<line;i++)
          System.out.print(" ");

       switch(line){
          case 6:
            System.out.print("*");break;
        default :{
             System.out.print("*");
            for( i=0;i<2*(6-line);i++)
              System.out.print(" ");
            System.out.print("*");
                       }
              }
         System.out.println();
              }

         for(line=1;line<=5;line++){
            for(k=0;k<=line;k++)
                System.out.print(" ");

            System.out.print("*");
            for(i=1;i<=2*(5-line);i++)
              System.out.print(" ");
             if(line==5) break;
             System.out.print("*");
           
             System.out.println();
              }


        }
     }
           
       
呵呵 我的算是盗版的了   

58.214.7.*

12楼

楼上的有点小错误for(i=1;i<=2*(5-line)-2;i++)这样循环就可以了,但是楼上的循环提还要改下,到三角没输入第二个*!

202.117.179.*

13楼

你的太麻烦
public class TestXin
{
     public static void main(String[] args)
     {
         for(int i=1;i<=6;i++){
             for(int j=1;j<=11;j++){
                 if(i+j==7||i+j==2*(i-1)+7){
                     System.out.print("*");
                     continue;
                 }
                 System.out.print(" ");
                 }
                 System.out.println();
         }
         for(int i=7;i<=11;i++){
             for(int j=1;j<=11;j++){
                 if(i+j==17||i+j==2*(j-1)+7){
                     System.out.print("*");
                     continue;
                 }
                 System.out.print(" ");
                 }
                 System.out.println();

         }
     }
}


14楼

你的太麻烦
public class TestXin
{
      public static void main(String[] args)
      {
          for(int i=1;i<=6;i++){
              for(int j=1;j<=11;j++){
                  if(i+j==7||i+j==2*(i-1)+7){
                      System.out.print("*");
                      continue;
                  }
                  System.out.print(" ");
                  }
                  System.out.println();
          }
          for(int i=7;i<=11;i++){
              for(int j=1;j<=11;j++){
                  if(i+j==17||i+j==2*(j-1)+7){
                      System.out.print("*");
                      continue;
                  }
                  System.out.print(" ");
                  }
                  System.out.println();

          }
      }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多