@savoid

Работа с двухмерными массивами, как исправить код?

Вывести массив на 10 колонок и 10 рядов. В зависимости от введеной цифры(от 1 до 2), вывести нужный вариант массива. Если цифра 1, то вывести первый вариант, если цифра 2, то вывести второй вариант. Сижу достаточно долго над этой задачей и чувствую, что ушел не в ту сторону. Хелп!

Вот, что у меня получилось. Явно не то, что мне надо. Уже запутался! Хелп x2!
import java.util.Scanner;

public class triangles {
	static int [][]  mas = new int [10][10];
	static Scanner sc = new Scanner(System.in);
	static int k;
	
	public static void PrintMasiv() {
		for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) 
			System.out.print(mas[i][j] + "\t");
			System.out.println();
		}
	}
	
	public static void VariantA() {
		int C = 1;
		System.out.println(" ");
		System.out.println("Variant A:");
		for (int i=0; i<=9; i++)
		    for (int j=9-i; j>=7-i; j--) 
		         if (j>=0) {
		            mas[i][j] = C; C=C+1;
		        }
		PrintMasiv();

	}

	public static void VariantB() {
		System.out.println(" ");
		System.out.println("Variant B:");
		for (int j=9; j>=1; j--)
	         for (int i=9; i>=10-j; i--)
	             mas[i][j] = 19-i-j;
		PrintMasiv();

		}
	
	public static void main(String[] args) {
		
		System.out.println(" ");
		System.out.print("Vvedite nomer varianta (variant A - 1, variant B - 2): ");
		
		do {
			while (!sc.hasNextInt()) {
				System.out.println(" ");
				System.out.println("Oshibka!");
				sc.next();
				System.out.print("Vvedite nomer varianta (variant A - 1, variant B - 2): ");
			}
		    k = sc.nextInt();
		   
		    if (k > 2 || k < 1) {
		    	System.out.println(" ");
		    	System.out.println("Nomer vne diapazona, vvedite eshe raz!");
		    	System.out.print("Vvedite nomer varianta (variant A - 1, variant B - 2): ");
		    }
		}while (!(k >= 1 && k <= 2));
		sc.close();
				
		System.out.println(" ");
		System.out.println("Nachalnij massiv:");
		System.out.println(" ");
		PrintMasiv();
		if (k == 1) {
			VariantA();
		} else if (k == 2) {
			VariantB();
		}
	}
}


Из картинки: Слева находится вывод первого варианта, справа находится вариант B, тоесть второй.
5fe2273629621585218949.png
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы