黑马程序员技术交流社区

标题: 有人知道该怎么打印菱形,等腰三角形,心形吗? [打印本页]

作者: 风轻云淡139    时间: 2016-9-11 00:48
标题: 有人知道该怎么打印菱形,等腰三角形,心形吗?
有人知道该怎么打印菱形,等腰三角形,心形吗?

作者: wxf468907066    时间: 2016-9-11 13:36
哇,忘了..
作者: 奋斗41280    时间: 2016-9-11 14:34
这是等腰的,菱形的不会,同求
for (inti=0; i<5; i++)
{
         for (int j=i+1; j<5; j++) {
                System.out.print(" ");
        }
      for (int k=0; k<=i; k++) {
                System.out.print("* ");
        }
        System.out.println();
}
作者: 宝瓶子    时间: 2016-9-11 14:56
什么是等腰三角形?
作者: daikaisheng    时间: 2016-9-11 15:45
菱形       
public static void main(String[] args) {
                for (int i = 0; i < 5; i++) {
                        for (int j = i + 1; j < 5; j++) {
                                System.out.print(" ");
                        }
                        for (int k = 4; k >= 0 ; k--) {
                                System.out.print("* ");
                        }
                        System.out.println();
                }
        }
作者: hfutWL    时间: 2016-9-11 15:52
刚写的一个打印菱形的程序,利用二维数组来存储,仅提供参考,应该还有更好的方法!
[Java] 纯文本查看 复制代码
import java.util.Scanner;
/*
* 打印菱形的程序
*/
public class Diamond {
        //定义静态成员变量用于接收用户输入行数
        private static int line;
       
        public static void main(String[] args) {
                while(true){
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入要打印菱形的行数,必须为奇数:");
                        String input = sc.nextLine();
                        //如果输入为quit结束该程序
                        if("quit".equals(input))
                                break;
                        //如果输入为数字,转成int类型的整数
                        else{
                                line = Integer.parseInt(input);
                        }
                        //假如输入为偶数,重新输入,直到为奇数才执行后面初始化和打印语句
                        if(line % 2 == 0){
                                System.out.println("输入错误,请重新输入!!");
                                continue;
                        }
                        //定义一个二维数组来存储形状,类似一个二维的地图
                        String[][] strs = new String[line][line];
                        //将二维数组元素全部赋值为" "
                        initMap(strs);
                        //在二维数组中存储菱形的图案
                        initDiamond(strs);
                        //遍历二维数组,打印菱形图案
                        print(strs);
                }
        }
       
        public static void initMap(String[][] strs){
                for (int i = 0; i < strs.length; i++) {
                        for (int j = 0; j < strs.length; j++) {
                                strs[j] = " ";
                        }
                }
        }
        public static void print(String[][] strs){
                for (int i = 0; i < strs.length; i++) {
                        for (int j = 0; j < strs.length; j++) {
                                System.out.print(strs[j]);
                        }
                        System.out.println();
                }
        }
        public static void initDiamond(String[][] strs){
                for (int i = 0; i < strs.length; i++) {
                        int a = line >> 1;
                        int k = 0;
                        if(i > a){
                                k = line -i - 1;
                                for(int j = a - k; j < a + k + 1; j++){
                                        strs[j] = "*";
                                }
                        }else{
                                for(int j = a - i; j < a + i + 1; j++){
                                        strs[j] = "*";
                                }
                        }
                }
        }

}

作者: daikaisheng    时间: 2016-9-11 16:41
心形最简单的打印方式

public static void main (String []args){
System.out.println("      *****       ***** ");
System.out.println("   *********   ********* ");
System.out.println(" ************ ************ ");
System.out.println("***************************");
System.out.println("***************************");
System.out.println("***************************");
System.out.println(" ************************* ");
System.out.println("   ********************* ");
System.out.println("     ***************** ");
System.out.println("      ************* ");
System.out.println("        ********* ");
System.out.println("          ***** ");
System.out.println("            * ");
}


作者: 风轻云淡139    时间: 2016-9-12 00:03
daikaisheng 发表于 2016-9-11 16:41
心形最简单的打印方式

public static void main (String []args){

能不能用for循环之类的打印心形。
作者: daikaisheng    时间: 2016-9-17 22:53
风轻云淡139 发表于 2016-9-12 00:03
能不能用for循环之类的打印心形。

public class heart {
        public static void main(String[] args) {
                printHeart();
        }

        public static void printHeart() {
                for (int i = 0; i < 3; i++) {
                        printBlank(5 - i * 2);
                        if (i == 0) {
                                printStar(7 - 1);
                                printBlank(5 + 2);
                                printStar(7 - 1);
                        } else {
                                printStar(7 + i * 3);
                                printBlank(5 - i * 2);
                                printStar(7 + i * 3);
                        }
                        System.out.println();
                }
                for (int i = 0; i < 3; i++) {
                        printStar(29);
                        System.out.println();
                }
                for (int i = 0; i < 8; i++) {
                        if (i == 7) {
                                printBlank(i * 2);
                                printStar(1);
                        } else {
                                printBlank(1 + i * 2);
                                printStar(27 - i * 4);
                        }
                        System.out.println();
                }
        }

        private static void printStar(int n) {
                for (int i = 0; i < n; i++) {
                        System.out.print("*");
                }
        }

        private static void printBlank(int n) {
                for (int i = 0; i < n; i++) {
                        System.out.print(" ");
                }
        }

}
作者: 风轻云淡139    时间: 2016-9-18 00:32
daikaisheng 发表于 2016-9-17 22:53
public class heart {
        public static void main(String[] args) {
                printHeart();

谢谢你同学,你真厉害!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2