How to print Two-Dimensional Array like table
I’m having a problem with two dimensional array. I’m having a display like this:
What basically I want is to display to display it as:
Here is my code:
16 Answers 16
If you don’t mind the commas and the brackets you can simply use:
![]()
Output
Of course, you might swap the 7 & 5 as mentioned in other answers, to get 7 per row.
![]()
You need to print a new line after each row. System.out.print(«\n») , or use println , etc. As it stands you are just printing nothing — System.out.print(«») , replace print with println or «» with «\n» .
You could write a method to print a 2d array like this:
![]()
A part from @djechlin answer, you should change the rows and columns. Since you are taken as 7 rows and 5 columns, but actually you want is 7 columns and 5 rows.
I’ll post a solution with a bit more elaboration, in addition to code, as the initial mistake and the subsequent ones that have been demonstrated in comments are common errors in this sort of string concatenation problem.
From the initial question, as has been adequately explained by @djechlin, we see that there is the need to print a new line after each line of your table has been completed. So, we need this statement:
However, printing that immediately after the first print statement gives erroneous results. What gives?
This is a problem of scope. Notice that there are two loops for a reason — one loop handles rows, while the other handles columns. Your inner loop, the «j» loop, iterates through each array element «j» for a given «i.» Therefore, at the end of the j loop, you should have a single row. You can think of each iterate of this «j» loop as building the «columns» of your table. Since the inner loop builds our columns, we don’t want to print our line there — it would make a new line for each element!
Once you are out of the j loop, you need to terminate that row before moving on to the next «i» iterate. This is the correct place to handle a new line, because it is the «scope» of your table’s rows, instead of your table’s columns.
And you can see that this new line will hold true, even if you change the dimensions of your table by changing the end values of your «i» and «j» loops.
Как вывести двумерный массив в виде таблицы
Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.
Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a 21 – это элемент, стоящий во второй строке и в первом столбце.
Описание двумерного массива
Пример описания двумерного массива Паскаля
var a: array [1..n, 1..m] of < тип элементов >;
В примере объявлен двумерный массив Паскаля a, состоящий из n строк, в каждой из которых m столбцов. При этом к каждой i -й строке можно обращаться m[i], а каждому j -му элементу внутри i -й строки – m[i,j].
Обращение к элементам двумерного массива имеет вид: a [i,j]. Обращение происходит к элементу, расположенному в i -й строке и j -м столбце.
Ввод двумерного массива
Для последовательного ввода элементов одномерного массива применялись циклы, в которых изменяли значение индекса с 1-го до последнего. Положение элемента в двумерном массиве Паскаля определяется двумя индексами: номером строки и номером столбца. Это значит, что необходимо последовательно изменять номер строки с 1-й до последней и в каждой строке перебирать элементы столбцов с 1-го до последнего. Для этого потребуются два цикла for или while , причем один из них будет вложен в другой.
Ввод двумерного массива с клавиатуры:
const n=5; m=10;
var a: array [1.. n , 1.. m ] of integer;
i, j: integer; < индексы массива >
begin
for i :=1 to n do <цикл для перебора всех строк>
for j :=1 to m do
Вывод двумерного массива Паскаля
Вывод элементов двумерного массива Паскаля также осуществляется последовательно, необходимо напечатать элементы каждой строки и каждого столбца.
Вывод двумерного массива в строку :
Вывод можно осуществить и в столбик с указанием соответствующего индекса. Но в таком случае нужно учитывать, что при большой размерности массива все элементы могут не поместиться на экране и будет происходить скроллинг, т.е. при заполнении всех строк экрана будет печататься очередной элемент, а верхний смещаться за пределы экрана.
Вывод двумерного массива в столбик:
Var
A: array [1..10, 1..10] of integer;
i, j : integer ; < переменная i,j вводятся как индекс массива >
Begin
For i:=1 to 10 do
For j :=1 to 10 do
Writeln (‘a[‘, i,j, ’]=’, a[i,j]); < вывод элементов массива в столбик >
readln;
end .
Вывод на экран элементов будет в следующем виде:
Вывод двумерного массива таблицей:
k — обычно выбирают на 1-2-3 символа больше чем само число, например: число 123 => k можно выбрать от 4 и более, если меньше, то числа будут сливаться или вообще не показываться(если n=0)