Создание шаблонов Java

#java

Вопрос:

Программа на Java, которая отображает шаблон в соответствии с вводом пользователя.

Это моя желаемая программа:

Ввод:

 3
3
1
2
 

Выход:

 ###
   
    
     
     /
    /_

 

Проблема в том, что он не показывает желаемый результат.Когда я ввел ввод, это то, что отображается:

Ввод:

 3
3
2
1
 

Выход:

 ###
   
    
     
   /
  /_

 

Вы можете помочь мне это исправить? Проблема в num3. Это мой код:

 
import java.util.Scanner;
class Main{   
public static void main(String args[])  {   
    Scanner input= new Scanner(System.in);
 
int i;   
int num1=input.nextInt();
int num2= input.nextInt();
int num3=input.nextInt();
int num4=input.nextInt();

    //num1
    for(i=0; i<num1; i  ) {   
        System.out.print("# ");   
    }  

    //num2
    for(int b=1; b<=num2; b  ){
        System.out.println();
        
        for (int j=1; j<=num2; j  ){
            if(b==j || j==b){
                System.out.print(" ".repeat(num1*2 -1)   "\");
            } else {
                System.out.print(" ");
            }
        }
    }
        
    // num3
    for(i = 0; i < num3; i  ){
        System.out.println();
        
        for(int j = 0; j < num3; j  ) {
            if(i j == num3 -1)
                System.out.print(" ".repeat(num1*2 - 2)   "/");
            else if( i != num3-1)
                System.out.print(" ");
        }        
    }
    
    //num4
    for(i=0; i<num4; i  ) {   
        System.out.print("_");   
    }    
  }
}

 

Ответ №1:

Я считаю, что этот код решает вашу проблему.

Кроме того, в вопросе есть ошибка. Первый ввод должен быть 3,3,2,1, а не 3,3,1,2. Это немного вводит в заблуждение.

 import java.util.Scanner;
class Main{   
public static void main(String args[])  {   
    Scanner input= new Scanner(System.in);
 
int i;   
int num1=input.nextInt();
int num2= input.nextInt();
int num3=input.nextInt();
int num4=input.nextInt();

    //num1
    for(i=0; i<num1; i  ) {   
        System.out.print("# ");   
    }  

    //num2
    for(int b=1; b<=num2; b  ){
        System.out.println();
        
        for (int j=1; j<=num2; j  ){
            if(b==j || j==b){
                System.out.print(" ".repeat(num1*2 -1)   "\");
            } else {
                System.out.print(" ");
            }
        }
    }
        
    // num3
    for(i = 0; i < num3; i  ){
        System.out.println();
        
        for(int j = 0; j < num3; j  ) {
            if(i j == num3 -1)
                System.out.print(" ".repeat(num1*2)   "/");
                //Changed from repeat(num1*2-2)
            else if( i != num3-1)
                System.out.print(" ");
        }        
    }
    
    //num4
    for(i=0; i<num4; i  ) {   
        System.out.print("_");   
    }    
  }
}