Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348

про функции и 2х мерный массив

15.05.2009, 12:16. Показов 2615. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет)
вот тут кое что немагу понять
пример

C++
1
2
3
4
5
 
int mass [2] [3];
for (int i =0; i<2; i++)
            for (int j = 0; j< 0; j++)
                      cin >> mass [i] [j];
вот так просто записывают в 2х мерный массив

а вот как написать или можно написать функцию которая запрашивает на заполнения массива

C++
1
2
3
4
5
6
7
8
 
int mac (int [] [3] , int n)
{
              for (int i = 0; i< n; i++)
                      for (int j = 0; j<3; j++)
                                   cin >> mass [i] [j];
                     return // а дальше незнаю что возвращать да и правильно ли написал ыункцию
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.05.2009, 12:16
Ответы с готовыми решениями:

3-х мерный массив+Строки+функции
Задача: Обработать n1 матриц размером n*m. Элемент строка. В каждой из матриц есть одно слово состоящее только из цифр. Найти его,...

Как преобразовать 3-х мерный массив в 2-х мерный NumPy
Есть 3-х мерный массив вида: .....], ....].....] Его нужно преобразовать в 2-х мерный массив вида: , ......] Возможно в NumPy...

Про массивы 2-мерный и строковый ООООчень надо!
Окончательно убедилась, что с# женской логике не подвластен.=( помогите пожалуйста решить задачи: Задача №4: Дана строка S. Найти...

10
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
15.05.2009, 12:39
Тип у такой функции void должен быть и возвращать ничего не надо.
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
15.05.2009, 17:11  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Тип у такой функции void должен быть и возвращать ничего не надо.
тоесть вводит числа в 2-х мерный массив нужно невозвращающей функцией



Код C++123456789 int mass [2] [3];*void mac ( int ar [] [3] , int n ){ for ( int i = 0; i < n ; i++)for ( int j = 0; j < 3; j++)std : : cin >> ar [ i ] [ j ] ;
}
такая чтоли будет функция?

Добавлено через 4 минуты 46 секунд
C++
1
2
3
4
5
6
7
 
void mac (int ar [] [3] , int n)
{
              for ( int i = 0; i < n; i++)
                      for ( int j = 0; j < 3; j++)
                                  std : : cin >> mass [i] [j];
   }
такая функция?
0
Временно недоступен
 Аватар для #pragma
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
15.05.2009, 20:15
Код не скомпилируется,скорее всего,так как первая размерность массива должна иметь тип const int.У тебя получается,что на момент компиляции размер массива неизвестен.
C++
1
2
3
4
5
6
void mac (int ar [2] [3] )
{
              for ( int i = 0; i < 2; ++i)
                      for ( int j = 0; j < 3; ++j)
                                  std : : cin >> mass [i] [j];
   }
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
15.05.2009, 20:21
если необходимы функции, то лучше работать с динамическеой памятью - масивом указателей (в изреченениях некоторых преподов - динамической матрицей)
0
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
16.05.2009, 03:17  [ТС]
да я книгу Прата читаю вот дошел там до функций,но там нет примера как ввод в 2-х мерный массив в функции делать
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
16.05.2009, 12:21
Чтобы просто заполнить используй такой прототип void FunctionName(<TypeOfArray> array[][columnSize], int rowSize);
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
16.05.2009, 12:41
Цитата Сообщение от #pragma Посмотреть сообщение
Код не скомпилируется,скорее всего,так как первая размерность массива должна иметь тип const int.У тебя получается,что на момент компиляции размер массива неизвестен.
В процедуре параметр, описанный как массив, передаётся по косвенности. В этом случае первая размерность не нужна, т.к. при вычислении адреса элемента она в расчёт не входит. Если нужно написать процедуру для массива с заранее известными размерами, то можно просто написать

C
1
2
3
4
5
6
7
8
9
10
11
12
void mac (int mas[2][3])
{
  for (int i = 0; i<2; i++)
    for (int j = 0; j<3; j++)
      cin >> mas [i][j];
}
 
main()
{
  int a[2][3];
  mac (a);
}
1
нубик программист)
 Аватар для Мегатрон
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
16.05.2009, 16:32  [ТС]
а в чем разница
C++
1
void mac(int ar [] [3],int n);
и
C++
1
void mas(int arr [2] [3];
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
16.05.2009, 16:51
C++
1
void mas(int arr [2] [3]);
тоже самое что и
C++
1
void mas(int arr [] [3]);
размерность строк будет игнорироваться.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
16.05.2009, 16:53
Ни в чём. При вычислении адреса элемента ar[x][y] используется только вторая размерность массива (3), первая нужна только для вычисления размера массива. Поскольку мы его передаём по указателю, то оно нужно только для красоты. Всё равно все варианты хреновые, т.к. в твоём случае одно измерение подаём параметром, а другое зашито внутри процедуры. В моём случае оба значения зашиты (т.е. черезжопность равномерная).

Правильно было бы подавать указатель на первый элемент и две размерности, но тут только через адресную арифметику типа

C
1
2
3
4
5
6
7
8
9
10
11
12
void mac (int *ar, int x, int y)
{
  for (i = 0; i < x; i++)
    for j = 0; j < y; j++)
      *(ar + i*y + j) = <инициализируем>
}
 
main ()
{
  int a[2][3];
  mac ((int*)a, 2, 3);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.05.2009, 16:53
Помогаю со студенческими работами здесь

Ввести 2-мерный массив, получить массив, в котором каждый элемент является кубом соответствующего элемента исходного массива
Ввести 2-мерный массив, получить массив, в котором каждый элемент является кубом соответствующего элемента исходного массива.

Массив: Создать Х-мерный массив, где Х > 3
Господа, растолкуйте пожалуйста,как это массив больше чем 3х мерный?? Не могу себе этого представить

m - мерный массив
Дано n точек m мерного пространства, каждая точка имеет массу. Найти координаты точки наиболее удаленной от точки центра масс. Помогите...

m - мерный массив
Дано n точек m мерного пространства, каждая точка имеет массу. Найти координаты точки наиболее удаленной от точки центра масс. Помогите...

1 мерный массив
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) произведение элементов массива с четными номерами; 2) сумму...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru