powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Слои в трехмерном массиве
4 сообщений из 4, страница 1 из 1
Слои в трехмерном массиве
    #33399117
Влад123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, не могу разобраться, как в трехмерном массиве double dArray[4][3][3]; поменять местами значения элементов четных и нечетных слоев.

// dArray[l][j][k]


for(int l=0; l<4; l++)
{
// dArray[l+1] = dArray[l]; ошибка - левым операндом должен быть адрес переменной.
Подсказали использоать указатель на массив
double (*pn)[3] = dArray[l]; а как его использовать не понятно.
// dArray[l] = pn [l]; ошибка
}
...
Рейтинг: 0 / 0
Слои в трехмерном массиве
    #33399824
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа такого
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
double a;
int i,j,k;
for(i= 0 ; i< 3 ; i++) {
   for (j= 0 ; j< 3 ; j++) {
       for(k= 0 ; k < 4 ; k+= 2 ) {
           a = dArray[k][i][j];
           dArray[k][i][j] = dArray[k+ 1 ][i][j];
           dArray[k][i][j] = a;
       } // for
   } // for
} // for
...
Рейтинг: 0 / 0
Слои в трехмерном массиве
    #33399957
Влад123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно обязательно с использованием указателя на многомерный массив, что то вроде такого:
double (*pn)[3] = dArray[l];
.......................... = dArray[l+1];
Потом меняем местами...
...
Рейтинг: 0 / 0
Слои в трехмерном массиве
    #33404445
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Массив в С это просто кусок памяти. Можно в принципе так извратится:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
#include <stdio.h>
#include <stdlib.h>
#include <mem.h>

void init_array(void);
void print_array(void);
double dArray[ 4 ][ 3 ][ 3 ];

void init_array() {
	int i1, i2, i3;
	for(i1= 0 ; i1< 4 ; i1++) {
		for(i2= 0 ; i2< 3 ; i2++) {
			for(i3= 0 ; i3< 3 ; i3++) {
				dArray[i1][i2][i3] = i1* 3 . 0  + i2 + ((double)(i3+ 1 ) /  10 . 0 );
			}
		}
	}
}

void print_array() {
	int i1, i2, i3;
	for(i1= 0 ; i1< 4 ; i1++) {
		printf("\t{");
		for(i2= 0 ; i2< 3 ; i2++) {
			if(i2> 0 ) printf(", ");
			printf(" {");
			for(i3= 0 ; i3< 3 ; i3++) {
				if(i3> 0 ) printf(", ");
				printf("%4.1lf", dArray[i1][i2][i3]);
			}
			printf("}");
		}
		printf("}\n");
	}
}

void main() {
	int i;
	double dTempArray[ 3 ][ 3 ];

	init_array();
	printf("Before:\n");
	print_array();

	for(i= 0 ; i< 4 ; i++) {
		if(i& 1 ) {
			memcpy(dTempArray, dArray[i], sizeof(dTempArray));
			memcpy(dArray[i], dArray[i- 1 ], sizeof(dTempArray));
			memcpy(dArray[i- 1 ], dTempArray, sizeof(dTempArray));
		}
	}
	printf("After:\n");
	print_array();
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Слои в трехмерном массиве
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]