当前位置:编程学习 > JAVA >>

如何用java编写用 "*"输出菱形

用java编写用 "*"输出菱形  输入数字 输出用* 组成的菱形  要求是偶数的
谢谢大家了 我是菜鸟!! --------------------编程问答-------------------- mark

如果明天上午9点前没有写的话!

我来帮你写! 呵呵!

good luck!!! --------------------编程问答-------------------- 菱形怎么会是偶数行呢.肯定是基数行阿.给个代码你.19行的菱形   要多少行你自己改那个int n就行了

public static void draw()//第19题,打出图形.菱形
{
int n=10;
//前10行.上半部分
for(int i=1;i<=n;i++)//控制行数
{
for(int k=n-1;k>=i;k--)//打印空格
{
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++)//打印*
{
System.out.print("*");
}
System.out.println();
}
//后9行,下半部分
for(int i=n-1;i>=1;i--)
{
for(int k=i;k<=n-1;k++)
{
System.out.print(" ");
}
for(int j=1;j<=2*i-1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
--------------------编程问答-------------------- 给你提个思路。。
分两部分来输出。。
一个循环负责输出空格。。
一个循环负责输出'*'。。。。
这是个很简单的问题。。。学习要自己多思考的。。 --------------------编程问答--------------------
public class Exc02 {
public static void main(String[] args) {
int n=8;
for(int i=-n/2;i<=n/2;i++){
for(int j=0;j<(i>0?i:-i);j++){
System.out.print(" ");
}
for(int j=0;j<(i>0?-2*i+n:2*i+n);j++){
if(j==0||j==(i>0?-2*i+n:2*i+n)-1){
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();
}
}
}
--------------------编程问答--------------------


public static void main(String[] args)
{
getXing(5);
getXing(7);
getXing(9);

}
public static void getXing(int m)
{
int t = m+1;
for(int i=1; i<=m; i++)
{
for(int j = 1; j<=Math.abs(t/2-i); j++)
{
System.out.print(" ");
}
for(int k = 1; k<=m-2*Math.abs(t/2-i);k++)
{
System.out.print("*");
}
System.out.println();
}
}

--------------------编程问答-------------------- up --------------------编程问答-------------------- www.Google.com --------------------编程问答-------------------- 楼上都说明白了.也就不废话了. --------------------编程问答-------------------- 空格和*各用一个循环控制 --------------------编程问答--------------------  饿。。。。 --------------------编程问答-------------------- 过来,顶 --------------------编程问答-------------------- 路过 --------------------编程问答-------------------- ls的各位啊!  不能帮别个做家庭作业啊。。。给个思路,提示一哈就行啊。。 --------------------编程问答-------------------- 回字四种写法之递归,记得以前一个面试题做过这个

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class teststar {
/**
 * 
 * @param args
 */
String sp = "";
int starsize = 0;
String star = "";

public static void main(String[] args) {
// TODO Auto-generated method stub
while (true) {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.print("Please enter the number::");
try {
String check = br.readLine();
if ("stop".equalsIgnoreCase(check))
break;
int size = Integer.valueOf(check);
teststar ttt = new teststar();
ttt.printStar(size);
} catch (NumberFormatException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}
}

}

public String addSpace(int space) {
if (space > 0) {
sp = sp + " ";
space--;
addSpace(space);
}
return sp;
}

public String addStar(int istar) {
if (istar > 0) {
star = star + "* ";
istar--;
addStar(istar);
}
return star;
}

public void printStar(int manystar) {
sp = "";
star = "";
if (manystar > 0) {
starsize++;
String space = this.addSpace(manystar - 1);
String star = this.addStar(starsize);
System.out.println(space + star);
manystar--;
printStar(manystar);
} else {
if (starsize > 0) {
manystar--;
starsize--;
String star = this.addStar(starsize);
String space = this.addSpace(-manystar);
System.out.println(space + star);
printStar(manystar);
}

}

}
}

--------------------编程问答-------------------- 说得真详细,飘过~~~ --------------------编程问答-------------------- public class Ling {

/**
 * @param args
 */
public String a = " ";
public String b = "*";
public void print(){
String x[][] = {{a,a,a,b,a,a,a},{a,a,b,b,b,a,a},{a,b,b,b,b,b,a},
{b,b,b,b,b,b,b},{a,b,b,b,b,b,a},{a,a,b,b,b,a,a},{a,a,a,b,a,a,a}
};
for(int i = 0; i < x.length; i++){
for(int j = 0; j < x.length; j++){

System.out.print(x[i][j]);

}
System.out.println();
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Ling p = new Ling();
p.print();
}

} --------------------编程问答-------------------- public class Ling2 {

/**
 * @param args
 */
public void print(){
for(int i=0; i < 7; i++){
switch(i){
case 0: System.out.print("   *");break;
case 1: System.out.print("  ***");break;
case 2: System.out.print(" *****");break;
case 3: System.out.print("*******");break;
case 4: System.out.print(" *****");break;
case 5: System.out.print("  ***");break;
case 6: System.out.print("   *");break;
}

System.out.println();
}

}

public static void main(String[] args) {
// TODO Auto-generated method stub
Ling2 p = new Ling2();
p.print();



} --------------------编程问答-------------------- 14楼的真详细,汗 --------------------编程问答-------------------- 十七楼的更强悍 --------------------编程问答-------------------- 17的真强悍,,,, --------------------编程问答-------------------- --------------------编程问答-------------------- 哎。。 我也做过这个题目。。。 不过是自己想死一堆脑细胞想出来的。。 --------------------编程问答-------------------- 17楼的有问题吧,不同行的“*”前的空格数应该不同啊。
再者,如果数字变大时,难道你要加长代码? --------------------编程问答-------------------- 随便一搜就有很多啊   --------------------编程问答-------------------- public static void draw()//第19题,打出图形.菱形
    {
        int n=10;
        //前10行.上半部分
        for(int i=1;i<=n;i++)//控制行数
        {
            for(int k=n-1;k>=i;k--)//打印空格
            {
                System.out.print(" ");
            }
            for(int j=1;j<=2*i-1;j++)//打印*
            {
                System.out.print("*");
            }
            System.out.println();
        }
        //后9行,下半部分
        for(int i=n-1;i>=1;i--)
        {
            for(int k=i;k<=n-1;k++)
            {
                System.out.print(" ");
            }
            for(int j=1;j<=2*i-1;j++)
            {
                System.out.print("*");
            }
            System.out.println();
        }
    } --------------------编程问答--------------------
  //后9行,下半部分
  for(int i=n-1;i>=1;i--)
  {
  for(int k=i;k<=n-1;k++)
  {
  System.out.print(" ");
  }
  for(int j=1;j<=2*i-1;j++)
  {
  System.out.print("*");
  }
  System.out.println();
  }
  }后九行for(int i=n-1;i>=1;i--)中i的值为一么是嘛,小弟新手这段代码理解不是很好,望各位高手指点一二。在此谢谢各位热心的网友。 --------------------编程问答-------------------- 大家都学过线性代数吧,计算机和数学是分不开的,利用数学知识很简单的哦。
贡献我的代码,仅供参考。-- 编程思想才是精髓

package csdn;
/**
 * 根据线性代数方式生成菱形
 *                       Y
 *                       ^
 *                       * 
 *                       *
 *                       *H
 *                    *  *  *
 *                  *    *    *
 *                *      *      *
 *              *        *        *
 *            *          *          *
 *          *            *            *
 *        *              *              *
 * ******************************************》X
 *      -W*             0*              * W
 *          *            *            *
 *            *          *          *
 *              *        *        *
 *                *      *      *
 *                  *    *    *
 *                    *  *  *
 *                       *-H
 *                       *
 *                       *
 * 
 * 如图,坐标系中四条直线围成的区域为菱形区域,即满足如下条件(线性代数都学过吧):
 *  X/W + Y/H <= 1.0
 *  X/W + Y/H >= -1.0
 *  X/W - Y/H >= -1.0
 *  X/W + Y/H <= 1.0
 * 
 * @author  : gaowei
 * @time : 7:07:28 PM
 * @email : com.gaowei@msn.com
 * @description :
 */
public class Diamond
{

/**
 * 根据菱形的宽和高化菱形
 * draw
 * @param W
 * @param H
 * 7:06:55 PM
 */
public void draw( int W, int H )
{
for (double Y = H; Y >= -H; Y--) {
for (double X = -W; X <= W; X++) {
            if(X/W + Y/H <= 1.0
         && X/W + Y/H >= -1.0
         && X/W - Y/H >= -1.0
         && X/W - Y/H <= 1.0 ){
             System.out.print( '*' );
            }else {
System.out.print( ' ' );
}
            }
        System.out.println();
        }
}

public static void main( String[] args )
{
Diamond diamond = new Diamond();
diamond.draw( 15 , 10 );
}
}
--------------------编程问答-------------------- public void showLingXing(int num){
        int zj = (num+1)/2 ;
for(int i=1;i<=num;i++){
            if(i<=zj){
                //在打印*之前需要打印空格  
    for(int j=1; j<=zj-i;j++){
                    System.out.print(" ");
    }
    //打印朝下的每一层的*   
    for(int j=1;j<=2*i-1;j++){
                    System.out.print("*");
    }     
}else{//在打印*之前需要打印空格  
    for(int j=1; j<=i-zj;j++){
                    System.out.print(" ");
    }
    //打印朝下的每一层的*  
    for(int j=1;j<=((zj*2-1)-(i-zj)*2);j++){
                    System.out.print("*");
    }
}
            System.out.println("");//打印换行
}
}
--------------------编程问答-------------------- 都是神人啊 --------------------编程问答-------------------- 小问题,大智慧 --------------------编程问答-------------------- public class Test{
public static void main(String []args){
p(5);
}
public static void p(int s){
for(int i=1;i<s;i++){
for(int y=1;y<s-i;y++){
System.out.print(" ");
}
for(int j=1;j<=i;j++){
System.out.print("*"+" ");
}
System.out.println();
}

for(int a=1;a<=s;a++){
for(int x=1;x<=a;x++){
System.out.print(" ");
}
for(int b=1;b<s-a;b++){
System.out.print("*"+" ");
}
System.out.println();
}
}
}
我这个是每行按顺序来的 --------------------编程问答-------------------- 前两天刚好写了一个:

    public static void main(String[] args) {
        int len = 4; // 菱形边长
        for (int row = -len; row <= len; row++) {
            for (int col = -len; col <= len; col++) {
                int tmp = len - Math.abs(row);
                if (col >= -tmp && col <= tmp) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
--------------------编程问答--------------------
引用 14 楼  的回复:
回字四种写法之递归,记得以前一个面试题做过这个Java code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class teststar {
    /**
     * 
     * @param args
     */
   ……

+1 --------------------编程问答-------------------- class  LinTest
{
/*
                     *
    * *
   * * *
    * *
     *
       */

public static void main(String[] args) 
{
//在ab(n);ac(x)中,要x=n-1,这样出来的图形才会是菱形,只需改变函数的值,想打印多大的菱形都行。
ab(3);
ac(2);

}

     /*         *
 定义   * * 这个图形的函数方法,菱形的上半部分
       * * *

     */
public static void ab(int n)
{
for (int x=0;x<n ;x++ )
{
for (int y=x;y<n-1 ;y++ )
{
System.out.print(" ");//打印空格
}
for (int z=0;z<=x ;z++ )
{
System.out.print("* ");//注意是*加空格:“* ”
}

System.out.println();
}
}

    /*         
 定义   * *  这个图形的函数方法,也是菱形的下半部分
         * 

    */
public static void ac(int x)
{

for (int a=0;a<x ;a++ )
{
for (int c=0;c<=a ; c++)
{
System.out.print(" ");//打印空格
}
for (int b=a;b<x ; b++)
{
System.out.print("* ");//注意是*加空格:“* ”
}
                    System.out.println();
   }
}
}
--------------------编程问答-------------------- 这种简单的程序初学者还是得自己动手写,代码写着写着就熟悉了,强调尝试哦
--------------------编程问答--------------------
package regexTest;

public class Test8
{
public static void main(String[] args)
{
int length = 32;
int j = length/2;
for(int i = 0; i < 10; i++)
{
for(int k = j; k > 0; k--)
{
System.out.print(" ");
}
System.out.print("*");
if(length - 1 - 2*j > 0)
{
for(int l = 0; l < length - 1 - 2*j; l++)
{
System.out.print(" ");
}
System.out.print("*");
}
for(int k = j; k > 0; k--)
{
System.out.print(" ");
}
System.out.println("");
j--;
}
for(int i = 0; i < 11; i++)
{
for(int k = j; k > 0; k--)
{
System.out.print(" ");
}
System.out.print("*");
if(length - 1 - 2*j > 0)
{
for(int l = 0; l < length - 1 - 2*j; l++)
{
System.out.print(" ");
}
System.out.print("*");
}
for(int k = j; k > 0; k--)
{
System.out.print(" ");
}
System.out.println("");
j++;
}



}
}
--------------------编程问答-------------------- 来个精简版的空心菱形,n为菱形边长

        static void output(int n)
        {
            for (int i = -n; i <= n; ++i)
            {
                for (int j = -n; j <= n; ++j)
                    System.out.print(Math.Abs(j) == n - Math.Abs(i) ? "*" : " ");
                System.out.println();
            }
        }
--------------------编程问答-------------------- import java.util.Collection;
import java.util.HashMap;
import java.util.Map;


public class Text {

/**
 * @param args
 */
public static void main(String[] args) {
int num=8;
//上三角
for (int i = 0; i <num; i++) {
for (int j = 1; j < num-i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 1+2*i; j++) {
System.out.print("*");
}
System.out.println();
}
//下三角
for (int i = 0; i < num-1; i++) {
for (int j =0; j <= i; j++) {
System.out.print(" ");
}
for (int j =1; j <= 2*(num-1)-2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}

}

}
--------------------编程问答-------------------- 都是高手啊。 --------------------编程问答-------------------- 咦,今天我们的作业就是要做个打印空心菱形的程序。。。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,