Skip to content

Commit a3b95db

Browse files
committed
Исправление картинки и разметки в 8.3
1 parent 561d207 commit a3b95db

File tree

5 files changed

+59
-49
lines changed

5 files changed

+59
-49
lines changed

lang_c/8/2__dvumernie_massivy/article.md

Lines changed: 53 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
Или таблица 12 на 31, где можно было бы хранить температуру в течение года. Понятно, что в некоторых месяцах будут заполнены не все клеточки таблицы, но это ничего страшного. Договоримся и будем туда записывать, например, число -9999.99, которое будет обозначать, что данные не определены.
3030
Ещё примеры: таблица Пифагора, поле для игры в крестики нолики, поле для игры 2048.
3131

32-
В подобных случаях используют `двумерные массивы`, т.е. массивы, у которых два измерения (два счётчика).
32+
В подобных случаях используют =двумерные массивы=, т.е. массивы, у которых два измерения (два счётчика).
3333

3434
![Двумерный массив](./arrays2.png)
3535

@@ -63,6 +63,10 @@ int arr [2][4] = {{1,2,4,29},{3,4,6,1}}; //произвольными значе
6363
6464
![Обращение к конкретному элементу двумерного массива](./el_arr.png)
6565
66+
% **Важно!**
67+
Первый индекс -- строки.
68+
Второй индекс -- столбцы.
69+
Нумерация начинается с нуля.
6670
6771
Следующая программа иллюстрирует основные операции для работы с двумерными массивами.
6872
@@ -71,47 +75,51 @@ int arr [2][4] = {{1,2,4,29},{3,4,6,1}}; //произвольными значе
7175
```c
7276
#include <stdio.h>
7377
74-
int main(void) {
78+
int main(void)
79+
{
7580
76-
int arr[4][8] = {{2,3,5,5,3,4,3,4},
77-
{7,1,-3,2,11,243,0,6},
78-
{5,1,-3,5,1,243,-5,-7},
79-
{-4,2,15,2,83,22,2,4}};
81+
int arr[4][8] = {{2,3,5,5,3,4,3,4},
82+
{7,1,-3,2,11,243,0,6},
83+
{5,1,-3,5,1,243,-5,-7},
84+
{-4,2,15,2,83,22,2,4}};
8085
81-
printf("%d\t%d\n\n", arr[0][3], arr[2][4]);
86+
printf("%d\t%d\n\n", arr[0][3], arr[2][4]);
8287
83-
for (int i = 0; i < 4; i = i + 1){
84-
for(int j = 0; j < 8; j = j + 1){
85-
printf("%d\t", arr[i][j]);
88+
/* Построчно обходим двумерный массив
89+
и выводим его элементы на экран
90+
*/
91+
for (int i = 0; i < 4; i = i + 1){
92+
for(int j = 0; j < 8; j = j + 1){
93+
printf("%d\t", arr[i][j]);
94+
}
95+
printf("\n");
8696
}
87-
printf("\n");
88-
}
8997
90-
return 0;
98+
return 0;
9199
}
92100
```
93101

94102
Как видите, если в одномерном массиве мы использовали один цикл для перебора всех элементов массива, то в двумерном два цикла. Первый цикл последовательно перебирает строчки, а второй последовательно перебирает элементы строки. Индексы массива в цикле будут перебираться в следующей последовательности:
95103

96-
```c
104+
```
97105
i = 0;
98-
j = 0;
99-
j = 1;
100-
j = 2;
101-
j = 3;
102-
j = 4;
103-
j = 5;
104-
j = 6;
105-
j = 7;
106+
j = 0;
107+
j = 1;
108+
j = 2;
109+
j = 3;
110+
j = 4;
111+
j = 5;
112+
j = 6;
113+
j = 7;
106114
i = 1;
107-
j = 0;
108-
j = 1;
109-
j = 2;
110-
j = 3;
111-
j = 4;
112-
j = 5;
113-
j = 6;
114-
j = 7;
115+
j = 0;
116+
j = 1;
117+
j = 2;
118+
j = 3;
119+
j = 4;
120+
j = 5;
121+
j = 6;
122+
j = 7;
115123
и т.д.
116124
```
117125

@@ -122,26 +130,27 @@ i = 1;
122130
```c
123131
#include <stdio.h>
124132

125-
int main(void) {
133+
int main(void)
134+
{
126135

127-
int arr[4][8] = {0};
128-
int k = 1;
136+
int arr[4][8] = {0};
137+
int counter = 1;
129138

130-
for (int i = 0; i < 4; i = i + 1){
131-
for(int j = 0; j < 8; j = j + 1){
132-
arr[i][j] = k;
133-
k = k + 1;
139+
for (int i = 0; i < 4; i = i + 1){
140+
for(int j = 0; j < 8; j = j + 1){
141+
arr[i][j] = counter;
142+
counter = counter + 1;
143+
}
134144
}
135-
}
136145

137-
for (int i = 0; i < 4; i = i + 1){
138-
for(int j = 0; j < 8; j = j + 1){
139-
printf("%d\t", arr[i][j]);
146+
for (int i = 0; i < 4; i = i + 1){
147+
for(int j = 0; j < 8; j = j + 1){
148+
printf("%d\t", arr[i][j]);
149+
}
150+
printf("\n");
140151
}
141-
printf("\n");
142-
}
143152

144-
return 0;
153+
return 0;
145154
}
146155
```
147156
10.7 KB
Loading
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"title": "Двумерные массивы",
33
"description": "В уроке разбираются основные способы работы с двумерными массивами: объявление и инициализация массива, перебор значений массива, обращение к отдельному элементу.",
4-
"keywords": "массивы, двумерные массивы",
5-
"canonical_link": "https://youngcoder.ru/lessons/8/dvumernie_massivy.php"
4+
"keywords": "массивы, двумерные массивы, двемерные массивы в Си",
5+
"canonical_link": "https://youngcoder.ru/lessons/8/dvumernie_massivy"
66
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
## Практика
22

33
- Решите [задачи с автоматической проверкой решения на Stepik](https://stepik.org/lesson/64657/step/1)
4+
5+
<div class="lessonStepikBlock">
6+
<iframe src="https://stepik.org/lesson/64657/step/1"></iframe>
7+
</div>
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +0,0 @@
1-
## Дополнительные материалы
2-
3-
1. пока нет

0 commit comments

Comments
 (0)