Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
#1

Как записать Z в трёхмерном массиве - C++

10.08.2009, 21:11. Просмотров 498. Ответов 6
Метки нет (Все метки)

ребята, простите за дурной вопрос, но не могу разобраться.

есть массив
C++
1
2
3
4
const int Y = 2, X = 2, Z = 2;
int a[Z][Y][X] =   {1,1,1,
              2,2,2,
};
куда записывать Z?
судя из C++. Бархатный путь. Часть 1
Первыми инициализируются элементы с самыми маленькими индексами, т.е. я так понимаю должно быть так:
MyArray[0][0][0] == 1
MyArray[0][0][1] == 1
MyArray[0][0][2] == 1
MyArray[0][1][0] == 2
MyArray[0][1][1] == 2
MyArray[0][1][2] == 2
и далее нули т.к. ничего не задано..

по этой логике после двоек я могу записывать координаты Z, но компилятор выдаёт ошибку. по идее Y не все даже ввёл. наставьте на путь истинный...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2009, 21:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как записать Z в трёхмерном массиве (C++):

Как проверить в массиве слова и записать их? - C++
Есть массив, под названием str. В каждой парной ячейке есть слово: str - Вася str - Вася str - Вася str - Женя str - Катя Есть...

записать несколько элементов в вектор сразу, как в массиве - C++
Добрый день, форум. Возможно ли в векторе записать несколько элементов одним разом, как в массиве? Например: массив: int massive =...

Полиморфизм, Точка в трёхмерном пространстве - C++
Задание 1. 1. Опишите класс "Точка в 3-хмерном пространстве". Данные класса: координаты точки, цвет. Конструкторы класса: ...

Даны вектора в трёхмерном пространстве, создать класс - C++
Помогите пожалуйста с задачей: Даны вектора в трёхмерном пространстве, создать класс, в котором осуществить их сложение и вычитание. ...

Как правильно записать условие "пока в массиве есть элемент, равный 2"? - C++
условие такое: пока в МАССИВЕ есть число 2, делать: ... ... while (2 in mas) - есть что-то типа этого?

Составить описания класса для векторов задаваемые координатами концов в трёхмерном пространстве - C++
Люди помогите написать программу, очень нужно!!! Составить описания класса для векторов задаваемые координатами концов в трёхмерном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Haster
инженер-системотехник
109 / 108 / 2
Регистрация: 10.03.2009
Сообщений: 533
10.08.2009, 21:20 #2
Z у тебя уже записано: для первой точки это 1, для второй - 2.
mustardandrew
Человек
96 / 80 / 3
Регистрация: 16.06.2009
Сообщений: 229
10.08.2009, 21:27 #3
Запиши лучше
C++
1
2
3
4
5
const int Y = 2, X = 2, Z = 2;
int a[Z][Y][X] =   {
    {{1, 2},{3, 4}},
    {{5, 6},{7, 8}}
    };
где

a[0][0][0] = 1;
a[0][0][1] = 2;
a[0][1][0] = 3;
a[0][1][1] = 4;
a[1][0][0] = 5;
a[1][0][1] = 6;
a[1][1][0] = 7;
a[1][1][1] = 8;
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
10.08.2009, 21:40  [ТС] #4
а если у меня есть изображение в массиве, и его я вывожу на экран после. своего рода матрица
ну например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int a[Y][X] = {
                    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
};
как можно сделать несколько таких слоёв в одном массиве но при помощи координаты Z? тобишь если Z=0 одно изображение, если =1 - другое, и т.д

Добавлено через 2 минуты 12 секунд
а всё кажется начинаю понимать, попробую как предложил DreamWolf

Добавлено через 6 минут 28 секунд
т.е. если Z=1 то делаем так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                              {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,
                    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
а Z=2 уже пишем в следующих скобках
по идее так
mustardandrew
Человек
96 / 80 / 3
Регистрация: 16.06.2009
Сообщений: 229
10.08.2009, 21:45 #5
В посте №3 всьо написано понятно.
Если не понял то напишу проще
C++
1
2
3
4
5
6
7
8
9
10
11
const int Y = 2, X = 2, Z = 2;
int a[Z][Y][X] =   {
    {
      {1, 2},  // Ето Z = 0
      {3, 4}   //
    },           
    {
      {5, 6},  // Ето Z = 1           
      {7, 8}   //
     }
    };
delias
4 / 4 / 0
Регистрация: 16.07.2009
Сообщений: 87
10.08.2009, 21:54  [ТС] #6
да понял я, спасибо за помощь.
сделал так:

C++
1
2
3
4
5
6
7
8
9
10
const int Y = 2, X = 3, Z = 3;
void main()
{
 
    int a[Z][Y][X] =   {{ 1,2,3,
                          4,5,6},
                        { 7,8,9,
                          10,11,12}, 
                        { 13,14,15,
                          16,17,18}};
+1 вам за помощь
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
11.08.2009, 15:52 #7
сделал так
Ну и неправильно сделал, должно быть так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
const int Y = 2, X = 3, Z = 3;
 
int main() {
 
int a[Z][Y][X]= {
    { { 1,2,3 }, { 4,5,6 } },
    { { 7,8,9 }, { 10,11,12 } },
    { { 13,14,15 }, { 16,17,18 } }
};
 
return 0;
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2009, 15:52
Привет! Вот еще темы с ответами:

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы. - C++
Не могу понять почему не работает вот этот кусок текста. ofstream q ("1.part"); for (int i=0; i<10; ++i) { q << mas ; ...

Записать число в 32-разрядном массиве - C++
Помогите разобраться, пожалуйста: Попытки: Записать число в 32-разрядном символьном массиве и вывести: #include "stdafx.h" #include...

Записать в третий массив С все элементы из массива B, которые не встречаются в массиве А - C++
Есть два массива A и B. Нужно записать в третий массив С все элементы из массива B, которые не встречаются в массиве А. Что-то не...

Найти 10 наибольших чисел в массиве из 10000 чисел и записать в массив - C++
Есть массив положительных чисел (значение каждого числа не превышает 3000). Найти 10 наибольших чисел и записать в массив arr. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.08.2009, 15:52
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru