странно, первый пост пропал. повторно
хочу разобраться почему не принимает решение - выводится как в примере.
может ли быть причина в том, что я не заполнял в массиве "белые" ячейки (в условии вроде бы так и указано) или это потому, что я их не выводил в консоль, а выводил по-сути только чёрные ячейки?
не умею обновлять код, закину так.
package en.javarush.task.jdk13.task06.task0634;
import java.util.Scanner;
/*
Chess board
*/
public class Solution {
public static char[][] array;
public static void main(String[] args) {
//write your code here
int in = 0;
int out = 0;
int number = 0;
int tmp = 0;
char h = 35;
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
array = new char[length][length];
for (out = 0; out < length; out++) {
for (number = 0; number < length; number = number + 2){
if (out % 2 == 0) {
array[out][number] = h;
tmp = number + 1;
System.out.print(array[out][number] + " ");
if (tmp < length)
System.out.print(array[out][tmp]);
}
else {
in = number + 1;
if (in < length) {
array[out][in] = h;
System.out.print(array[out][number]);
System.out.print(array[out][in] + " ");
}
}
}
System.out.println();
}
}
}
newNoName
Level 28
не принимает решение
Under discussion
Comments (7)
- Popular
- New
- Old
You must be signed in to leave a comment
newNoName Team Lead
29 September 2021, 18:56
можно конечно порробовать применить знания из последующих лекций. но, как я понимаю, нужно пользоваться тем что дано в условии. т.е. если нет указания применять Arrays.etc(), то и применять его нельзя.
0
Ksenia Volkova Java Developer at DXCMaster
28 September 2021, 09:51
В каждой строке должно быть одинаковое число символов.
Если length=5, то по 5 символов: в нечетных 3 '#' и 2 пробела, в четных 2 '#' и 3 пробела (один из них в начале строки, в примере к заданию его не видно).
У тебя же будет то 4 символа, то 6.
0
newNoName Team Lead
29 September 2021, 08:31
ок, но пробел то не считается частью массива - просто разделитель при выводе в консоль. и в четных(в четных в смысле по счету, не по нумерации) строках я убрал пробелы в начале строки (переписал алгоритм заново).
я так понимаю, если в условии указано - "White -", это означает что в белые ячейки вносить ничего не нужно. я и не вносил.
но на вывод в переписаном алгоритие выводил все ячейки со строки (5. не 4 и не 6) и ответ не принимается всё так же, хотя и соответствует условию.
0
Ksenia Volkova Java Developer at DXCMaster
30 September 2021, 07:16
Зря убрал прикреплённую задачу - теперь не видно условия. Но вроде там речь шла о заполнении массива в шахматном порядке. А как выглядит твой массив?
Ты пытаешься подогнать вывод под ответ, но суть задания ведь не в этом.
+1
newNoName Team Lead
30 September 2021, 18:57
Вот условие
Let's create a program to generate square chessboards with a given dimension.
In the Solution class, you have a two-dimensional array of characters (the array field). Requirements:
Read a number from the keyboard. This will be the dimension of our board (the length of a side);
Initialize the array variable with the appropriate value;
"Paint" the array to obtain a checkerboard pattern (black cells - '#', white - ). Start the pattern by putting a '#' in the top left corner of the array;
Display the array on the screen as in the example (each row on a separate line).
Example output for number 5:
# # #
# #
# # #
# #
# # #
// пооже после White - есть пробел. Внесу изменения, надеюсь ршится
0
Ksenia Volkova Java Developer at DXCMaster
30 September 2021, 20:02useful
Ключевое тут - display the array.
То, что ты выводишь, должно соответствовать содержимому массива, а не существовать отдельно от него.
+1
newNoName Team Lead
2 October 2021, 03:19
как оказалось, так и есть. скачав правильное решение, увидел что вносятся пробелы в белые поля (новерное тогда нужно было корректно писать условие задачи - "White - " "").
но меня получается ввело в заблуждение это:
0