Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4

Как конвертировать одномерный массив в двумерный с использованием цикла?

03.02.2020, 00:44. Показов 3064. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В сети видел подобное но не сохранил ссылку, а теперь не могу вспомнить как попал на тот сайт.
Есть такой массив
int Masiv[10]/int Masiv[] нужно чтобы имя осталось такое а массив стал таким Masiv[10][2]/Masiv[][2], в общем не обязательно 2мерный может быть какой угодно ранг. Только не предлагайте классы (в них пока не разбираюсь), вектора(потому что в моей VS они не работают и в них я пока не разбираюсь) и контейнеры(в них я пока не разбираюсь). Можно функции и макросы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2020, 00:44
Ответы с готовыми решениями:

Как конвертировать HashMap в двумерный массив?
может есть какие то красивые ( не лямбда ) функции в стандарте?

Дан двумерный массив, из него сделать одномерный. В одномерный массив сначала вписат четные строки потом нечетные
Здравствуйте,собственно задача в заголовке темы. никак не получается все это дело слит в одномерный массив,подскажите плз, как...

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

27
 Аватар для Recrut_rf
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
21.04.2020, 00:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от JeyCi Посмотреть сообщение
их определения всё равно надо писать там, где используете
Что за бред?
Цитата Сообщение от Nexi99 Посмотреть сообщение
и функции писал в разнобой и программа выстраивала дерево сама
нужно - чтобы было объявление (условно - прототип функции) и, соответствующее ему, определение (то есть само тело) функции.

Небольшой примерчик:
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
#include <iostream>
 
using namespace std;
 
void func1()
{
    cout << "func1()" << endl;
}
 
void func2();
 
int main()
{
    func1();
    func2();
    system("pause");
    return 0;   
}
 
 
void func2()
{
    cout << "func2()" << endl;
}
Добавлено через 24 минуты
Основное правило - функции должны быть объявлены до момента их вызова. Это, кстати касается и к примеру классов.
То есть компилятор должен знать, на что он ссылается. А вот на этапе линковки будет уже реальная подстановка адресов функций (то есть их тел)

для func1 в моём примере - объявление и определение по-сути совмещены вместе. Для func2 вначале имеем объявление (прототип функции), а уже потом определение (тело функции)
0
144 / 28 / 4
Регистрация: 06.05.2019
Сообщений: 1,839
Записей в блоге: 4
21.04.2020, 00:43  [ТС]
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Основное правило - функции должны быть объявлены до момента их вызова. Это, кстати касается и к примеру классов.
То есть компилятор должен знать, на что он ссылается. А вот на этапе линковки будет уже реальная подстановка адресов функций (то есть их тел)
Ну по логике да. Это как какой компилятор понимает. В некоторых даже глобальные переменные можно объявлять ниже контрольных функций и пашет. Ладно ребята если я найду то видео я отпишусь что там нужно делать, но сейчас нет возможности 30 часов видео пересматривать, не записал дурень. Да и в принципе чтение программы происходит сверху вниз мы же тоже книгу так читаем.
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
21.04.2020, 06:01
Цитата Сообщение от JeyCi Посмотреть сообщение
их определения всё равно надо писать там, где используете, выше main()
да, слово не то подобрала
Цитата Сообщение от Recrut_rf Посмотреть сообщение
нужно - чтобы было объявление
а тело функции - это то, что потом обозвала реализацией...
p.s.
по примеру вашего void func2();
- так и объявляю над main(),
а всю функцию, которая у вас под main() - можно даже в др. cpp разместить - так и делаю...
0
 Аватар для Recrut_rf
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
21.04.2020, 11:03
Цитата Сообщение от Nexi99 Посмотреть сообщение
Это как какой компилятор понимает
Все плюсовые и сишные компиляторы так работают

Цитата Сообщение от Nexi99 Посмотреть сообщение
В некоторых даже глобальные переменные можно объявлять ниже контрольных функций и пашет
Что такое - контрольная функция? Впервые слышу.

Nexi99, дополненный пример, чтоб понятно было - как надо делать:
файл Source1.h - содержит объявление функции func3():
C++
1
2
3
#include <iostream>
 
void func3();
Source1.cpp - содержит определение func3():
C++
1
2
3
4
5
6
7
#include "Source1.h"
 
 
    void func3()
    {
        std::cout << "func3 from Source1\n";
    }
файл main.cpp - содержит главную функцию main() и функции func1() и func2():

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
#include "Source1.h"
 
using namespace std;
 
void func1()
{
    cout << "func1()" << endl;
}
 
void func2();
 
int main()
{
    func1();
    func2();
    
    func3();
 
    system("pause");
    return 0;   
}
 
 
void func2()
{
    cout << "func2()" << endl;
}
Теперь, когда подключаем файл Source1.h (#include "Source1.h") имеем доступ к функции func3(). Для чего так делается - для раздельной компиляции. В заголовочные файлы выносят интерфейс (объявления) с которыми потом будут работать. Вся реализация делается в .срр файлах. Да её вообще может не быть как таковой в виде исходника. Просто будет файл библиотеки .lib или .dll и соответствующий заголовочный файл к нему. То есть файл с исходниками уже будет скомпилирован. Но чтобы работать с ним - нужны соответствующие объявления того, что в нем определено - эта инфа и хранится в заголовочном файле. Подключаем заголовочный файл к своей проге - получаем доступ к тому, что есть в соответствующей библиотеке (dll или lib, файлы с исходниками (.срр) тоже называют библиотекой)
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
21.04.2020, 12:31
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Просто будет файл библиотеки .lib или .dll и соответствующий заголовочный файл к нему.
То есть файл с исходниками уже будет скомпилирован.
- для Windows;
для Linux - это будут скомпилированные .a или .so - и тоже заголовочники, которые надо подключить к main()...
- дополнила для полноты картины
p.s.
что интересно - для Ultimate++ IDE - все либы именно в линуксном виде... и работает... кроссплатформенно похоже... дополнила просто для инфо, где либы находятся - для линкера

Добавлено через 6 минут
конечно, до компиляции - всё в с/cpp
0
 Аватар для Recrut_rf
392 / 337 / 66
Регистрация: 14.10.2014
Сообщений: 1,538
21.04.2020, 12:44
Цитата Сообщение от JeyCi Посмотреть сообщение
все либы именно в линуксном виде
Наверное, всё таки не все, а те, которые собирают для Linux. При установки студии можно выбрать с какими языками и системами она работать будет. Поэтому, предполагаю, что если не устанавливать возможность сборки под Linux, то и файлов вида .a или .so в ней не будет. Но абсолютно в этом не уверен.

А вообще - в плюсах кросплатформенность - это когда один и тот же код собирается на одной и той же IDE под разные системы. Ничего более. В отличие, скажем от Java - где просто собираем один раз код - и он обязан работать на всех системах, где есть соответствующая виртуальная машина
0
18 / 14 / 4
Регистрация: 02.04.2017
Сообщений: 125
21.04.2020, 14:50
Прошу прощения за грубость, но вам бы узнать что такое "конспект". Обучение бесполезно без закрепления на практике. Если вы сразу не закрепляете делом что увидели в уроке, что и как там было сделано - пишите заметки,конспектируйте, сохраняйте видео в котором это видели
0
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
24.04.2020, 08:05
Цитата Сообщение от Recrut_rf Посмотреть сообщение
В отличие, скажем от Java - где просто собираем один раз код - и он обязан работать на всех системах, где есть соответствующая виртуальная машина
так может его и собирали на линуксе... в lib'ах IDE не вижу windows расширений, только линуксные... но есть много .cpp - wrappers для разного рода функционала... может, и в этом фишка для компилятора... пока не вникаю, просто отметила... - компилировала static_all -- в out выбрасываются .a ... динамические библиотеки ещё не пробовала...
НО брать dll для проекта пока сомневаюсь... - лучше уж совсем исходники нужной либы... вобщем времени нет оттестить всё -- ... можно ли подключить dll в U++ - посмотрю потом когда-нибудь на досуге... но всё может быть, что самой придётся делать .so из исходников для U++... ИМХО

Добавлено через 18 минут
Цитата Сообщение от Recrut_rf Посмотреть сообщение
кросплатформенность - это когда один и тот же код собирается на одной и той же IDE под разные системы.
так его разработчики его и собрали для windows и для Linux - чтобы был выбор у юзеров... а вообще, там вроде open-source самоё IDE - можно и самим собирать... вобщем, не буду перепечатывать их сайт - кому надо посмотрят...
собрала all_static MyProj (на win в u++ ide) - и то радует...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2020, 08:05

Как превратить двумерный массив в одномерный?
Здравствуйте! Прошу помощи. Не знаю, как исправить код ниже для Эксель, чтобы одномерный массив полностью показывал элементы двумерного. ...

Как переконвертировать двумерный массив в одномерный
Здравствуйте! Подскажие пожалуйста, как из двумерного массива mas получить одномерный к примеру x

Как преобразовать одномерный массив в двумерный?
Есть масcив типа ABCDEFG нужно чтобы каждый пятый элемент начинался с новой строки ABCDE FG Как такое возможно сделать?

Конвертировать одномерный массив в двухмерный
Нужно свернуть массив обратно в двухмерный, а пустые ячейки заполнить нулями int array = new int; int m1 =...

Конвертировать одномерный массив в ступенчатый
Дан одномерный массив заполненный случайными числами, конвертировать его в ступенчатый массив


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru