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

Массив произвольной размерности и работа с ним - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ "Извлечение ключевых слов" http://www.cyberforum.ru/cpp-beginners/thread813448.html
Всем привет!!! Помогите найти алгоритм извлечения клёчевых слов в виде схемы на Visio, или подскажите что нибудь полезное!
C++ Отбросить нули Ребят помогите отбросить нули. Например я ввожу 0000000000000005,45 а он должен принимать 5,45. И еще вопрос как сделать чтобы он не округлял значение? Потому что если я ввожу больше 16 символов то он последние округляет а мне нужно чтобы просто брал первые 16. Вот код: #include <iostream> #include <stdio.h> int main() { setlocale(0,"rus"); double A, Z, U; http://www.cyberforum.ru/cpp-beginners/thread813434.html
Задача методом Гаусса C++
ребят помогите пожалуйста составить программу в С++ метод Гаусса )))
C++ ООП задачи (нужны простые коды)
Есть у кого нибудь простые коды, написанные объектно ориентированным программированием, чтобы на примере увидеть как это работает , скиньте сюда плз
C++ Отладка http://www.cyberforum.ru/cpp-beginners/thread813373.html
Доброго времени суток! Написал программку в которой специально допустил ошибку. int main() { char * buf = nullptr; *buf = 10; return 0;
C++ Работа с матрицей - исправить ошибки в коде работать не хочет... вылетает после 35 строки.(компилит нормально) как быть друзья? #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> #include <iostream> int A; int m,n; подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
20.03.2013, 17:45     Массив произвольной размерности и работа с ним
Цитата Сообщение от JollyRoger Посмотреть сообщение
Kastaneda, не прокнуло преобразование типа. а жаль
Всмысле? Вот рабочий пример
C++
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
#include <iostream>
 
const int size = 3;
 
void createArray (char **p, int depth)
{
   if (depth == 1) {
        char ch = 'a';
        for (int i = 0; i < size; i++) {
            ((char*)p)[i] = ch + i;
        }
        return;
   }
 
   for (int i = 0; i < size; i++) {
      p[i] = (char*)new char*[size];
   }
   
   for (int i = 0; i < size; i++) {
      createArray((char**)p[i], depth-1);
   }
}
 
int main ()
{
   char **ptr = new char*[size];
   createArray (ptr, size);
 
   for (int i = 0; i < size; i++) {
       for (int j = 0; j < size; j++) {
           for (int k = 0; k < size; k++) {
               std::cout << ((char***)ptr)[i][j][k] << " ";
           }
           std::cout << std::endl;
       }
       std::cout << std::endl;
   }
}
вывод
Bash
1
2
3
4
5
6
7
8
9
10
11
a b c
a b c
a b c
 
a b c
a b c
a b c
 
a b c
a b c
a b c
имеем указатель на указатель (т.е. как бы двумерный массив), но делаем из него 3 мерный. По идее число size можно вводить с клавиатуры, все будет работать. Только вывод массива уже захардкодить неполучиться (как сейчас - тройной цикл), придется тоже через рекурсию делать.

Добавлено через 4 минуты
как вариант - меняем size на 4 и вывод хардкодим вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
   for (int i = 0; i < size; i++) {
       for (int j = 0; j < size; j++) {
           for (int k = 0; k < size; k++) {
               for (int n = 0; n < size; n++) {
                    std::cout << ((char****)ptr)[i][j][k][n] << " ";
               }
               std::cout << std::endl;
           }
           std::cout << std::endl;
       }
       std::cout << std::endl;
   }
вывод
Кликните здесь для просмотра всего текста
Bash
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
a b c d
a b c d
a b c d
a b c d
 
Текущее время: 22:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru