Пользователь вводит количество квадратов для создания. Пользователь также указывает размер каждого квадрата, вводя размер. Затем программа распечатывает квадраты со звездами на экране с размером, указанным пользователем. Квадраты должны быть нарисованы в последовательности.
В приведенном ниже примере напечатаны 3 квадрата с размерами 5x5, 3x3 и 7x7.
Вывод должен выглядеть так:
Введите количество фигур: 3
Введите размер фигуры 1: 5
Введите размер фигуры 2: 3
Введите размер фигуры 3: 7
Моя первая попытка работает хорошо, но печатает квадраты сразу после ввода количества квадратов. Вот так -
import java.util.Scanner;
public class Main3 {
static Scanner scanner = new Scanner(System.in);
static int numOfShapes;
static String[] shape;
static int shapeSize;
static int nrOfRows;
static int nrOfCols;
public static void main(String[] args) {
System.out.print("Enter the number of shapes:");
numOfShapes = scanner.nextInt();
scanner.nextLine();
getShape();
}
public static void getShape(){
for(int i = 0; i < numOfShapes; i++){
System.out.print("Enter size of shape " + (i + 1) + "\n");
shapeSize = scanner.nextInt();
scanner.nextLine();
shape = new String[shapeSize];
nrOfRows = shapeSize;
nrOfCols = shapeSize;
for (int row = 0; row < nrOfRows; row++) {
for (int col = 0; col < nrOfCols; col++) {
shape[i] = "*";
System.out.printf("%s ", shape[i]);
}
System.out.println();
}
}
}
}
Моя вторая попытка выглядит так, но, похоже, не работает должным образом. Я не могу понять, почему.
import java.util.Scanner;
публичный класс Main {
static int numOfShapes;
static int sizeOfShape;
static String[] arrayToPrint;
static Scanner scanner = new Scanner(System.in);
static int nrOfRows;
static int nrOfCols;
public static void main(String[] args) {
System.out.print("Enter the number of shapes to print:");
numOfShapes = scanner.nextInt();
for (int i = 0; i < numOfShapes; i++) {
System.out.println("Enter the size of shape " + (i + 1));
sizeOfShape = scanner.nextInt();
scanner.nextLine();
arrayToPrint = new String[sizeOfShape];
//arrayToPrint[i] = Integer.toString(sizeOfShape);
}
nrOfRows = sizeOfShape;
nrOfCols = sizeOfShape;
for (int i = 0; i < numOfShapes; i++) {
for (int row = 0; row < nrOfRows; row++) {
for (int col = 0; col < nrOfCols; col++) {
arrayToPrint[i] = "*";
System.out.printf("%s ", arrayToPrint[i]);
System.out.println();
}
System.out.println();
}
//System.out.println();
}
}
}