KimYDae 2022-09-10 18:18 采纳率: 83.5%
浏览 14
已结题

JAVA:打印菱形:下面的程序哪里有问题?

下面这个程序哪里有问题吗?
打印菱形


package sec;
import java.util.Scanner; 
 
public class Printlingxing {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = 0;
//获取用户输入存入整形变量i中
        if(scan.hasNextInt()){
            i =  scan.nextInt();
        }
//判断并输出
        if(i%2==0||i==1){//注意这里为==!!i%2==0不是 2System.out.print("error");
        }
        else{
            for(int j=1;j<=i/2;j++){//若i等于3;只循环一次   //j=1;j<=4;j++
                for(int m=i/2; m>0;m--){//m=1,//m=4;m>0;m--
                    System.out.print(" ");
                }
                for(int n=1;n<=i-2;n=n+2){//n=1,n
                    System.out.print("*");
                }
                System.out.print("\n");
            }

            for(int k=1;k<=i;k++){
                System.out.print("*");
            }
            System.out.print("\n");

            for(int j=i/2;j>=1;j--){
                for(int m=1; m<=i/2; m++){
                    System.out.print(" ");
                }
                for(int n=i-2;n>=1;n=n-2){
                    System.out.print("*");
                }
                System.out.print("\n");
            }
        }
    }
}
  • 写回答

1条回答 默认 最新

  • 梦里逆天 2022-09-10 19:23
    关注

    可参考:https://blog.csdn.net/wang_yi_king/article/details/123512570

    import java.util.Scanner;
    
    public class Printlingxing {
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int i = 0;
            //获取用户输入存入整形变量i中
            if(scan.hasNextInt()){
                i =  scan.nextInt();
            }
            //判断并输出
            if(i%2==0||i==1){//注意这里为==!!i%2==0不是 2!
                System.out.print("error");
            }
            else{
                for(int j=1;j<= i/2 + 1;j++){ // 控制上半部分的行数
                    for(int m= 1; m <= i / 2 + 1 - j; m++){ // 控制空格的数量
                        System.out.print(" ");
                    }
                    for(int n = 1;n <= 2 * j - 1; n++){ // 控制“*”的数量
                        System.out.print("*");
                    }
                    System.out.print("\n");
                }
    
                for(int j=i/2; j >= 1; j--){ // 控制下半部分的行数
                    for(int m=1; m<= i/2 + 1 - j; m++){ // 控制空格的数量
                        System.out.print(" ");
                    }
                    for(int n= 1; n <= 2 * j - 1; n++){
                        System.out.print("*");
                    }
                    System.out.print("\n");
                }
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 修改了问题 9月10日
  • 创建了问题 9月10日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效