Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по проге / 7_Многомерные массивы

.pdf
Скачиваний:
30
Добавлен:
14.03.2016
Размер:
158.74 Кб
Скачать

Примеры обращения к двумерному массиву

//Обращение к строке массива,

//результат — одномерный массив battlefield[2]

battlefield

0

1

2

 

0

 

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

0

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

-1

1

-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//Обращение к элементу массива,

//результат — целое число battlefield[1][2]

21

battlefield

0

1

2

 

0

0

1

 

1

 

 

 

 

 

 

 

1

1

0

 

-1

 

2

-1

1

 

 

 

 

-1

 

 

 

 

 

 

 

Задание

Поставьте в середину игрового поля нолик

Заполните последнюю строку игрового поля крестиками. Для заполнения используйте функцию

memset( char mass[],

// массив

char c,

// заполнитель

int count )

// кол-во элементов

 

// для заполнения

22

Примеры модификации двумерного массива

//Помещаем в середину игрового поля нолик battlefield[1][1] = 0;

//Заполняем последнюю строку игрового

//поля крестиками

memset(battlefield[2], 1, 3);

battlefield

0

1

2

 

battlefield 0 1 2

3 4 5

 

6 7 8

 

 

 

 

 

 

 

 

 

 

 

0

1

1

-1

0

1

 

1

1

1

 

 

 

 

 

 

 

0

 

0

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

-1

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

1

1

1

 

подмассив

 

 

 

 

 

 

 

 

23

Задание

Заполните последний столбец игрового поля ноликами

24

Примеры модификации двумерного массива

//Обращение к последнему столбцу поля

//невозможно!!! - синтаксическая ошибка!!! memset(battlefield[][2], 0, 3);

//Поэлементное заполнение столбца

 

for(int i = 0; i < 3; i++)

// i — индекс строки

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

battlefield[i][2] = 0;

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

battlefield

 

 

2 battlefield

 

 

 

 

 

 

 

0

1

0 1 2

3 4 5

6 7 8

 

0

0

1

0

 

0

1

0

1

0

0

-1

1

0

 

1

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25

2

-1

1

0

 

 

 

 

 

 

 

 

 

 

Это надо помнить!

Многомерный массив можно рассматривать как массив подмассивов

Подмассив можно получить, указав часть индексов в многомерном массиве

26

Ошибки при компиляции для VS 2008 Russian

для индекса требуется массив или указатель

количество квадратных скобок при обращении к элементу массива слишком велико (указано больше индексов, чем измерений в массиве)

=: невозможно преобразовать <тип> в '<тип>[<размер>]' — количество квадратных скобок при обращении к элементу массива слишком мало (указано меньше индексов, чем необходимо)

27

Ошибки при компиляции для VS 2005 English

subscript requires array or pointer type

количество квадратных скобок при обращении к элементу массива слишком велико (указано больше индексов, чем измерений в массиве)

cannot convert from '<тип>' to '<тип>[<размер>]' количество квадратных скобок при обращении к элементу массива слишком мало (указано меньше индексов, чем необходимо)

28