Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2011, 22:33   #1
Zayka
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию Из динамических массивов в обычные

Код:
#include <iostream.h>
 
void trans_pointer()
{
        int n,m,i,j;
        int **X,**Y;
        cout << "Enter m"<<endl;
        cin >> m;
        cout << "Enter n"<<endl;
        cin >> n;
        X = new int * [m];
        for(i=0;i<m;i++)
                X[i] = new int[n];
        cout << "Enter matrix X"<<endl;
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        cin >> X[i][j];
        Y = new int * [n];
        for(j=0;j<n;j++)
                Y[j] = new int[m];
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        Y[j][i] = X[i][j];
        cout << "Matrix Y:"<<endl;
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                        cout << Y[i][j] << " ";
                cout <<endl;
        }
        for(i=0;i<m;i++)
                delete X[i];
        delete X;
        for(j=0;j<n;j++)
                delete Y[j];
        delete Y;
}
 
int main()
{
        cout <<endl<< "Using pointers"<<endl;
        trans_pointer();
        return 0;
}
В общем программа полностью валидна, но в ней используется динамическое создание массивов. Как мне переделать, чтобы обойтись от них. Просто мы их ещё не проходили...Помогите плиз...
Прыгала, прыгала, к вам на форум припрыгала...
Zayka вне форума Ответить с цитированием
Старый 17.04.2011, 23:20   #2
Anabel-wika
Новичок
Джуниор
 
Регистрация: 03.04.2011
Сообщений: 2
По умолчанию

Код:
#include <iostream.h>
 
void trans_pointer()
{
        int n,m,i,j;
        cout << "Enter m"<<endl;
        cin >> m;
        cout << "Enter n"<<endl;
        cin >> n;
        int X[m][n];
        cout << "Enter matrix X"<<endl;
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        cin >> X[i][j];
        int Y[n][m];
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        Y[j][i] = X[i][j];
        cout << "Matrix Y:"<<endl;
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                        cout << Y[i][j] << " ";
                cout <<endl;
        }
}
 
int main()
{
        cout <<endl<< "Using pointers"<<endl;
        trans_pointer();
        return 0;
}
Так должно работать.
Anabel-wika вне форума Ответить с цитированием
Старый 17.04.2011, 23:33   #3
Zayka
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Anabel-wika Посмотреть сообщение
Код:
#include <iostream.h>
 
void trans_pointer()
{
        int n,m,i,j;
        cout << "Enter m"<<endl;
        cin >> m;
        cout << "Enter n"<<endl;
        cin >> n;
        int X[m][n];
        cout << "Enter matrix X"<<endl;
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        cin >> X[i][j];
        int Y[n][m];
        for(i=0;i<m;i++)
                for(j=0;j<n;j++)
                        Y[j][i] = X[i][j];
        cout << "Matrix Y:"<<endl;
        for(i=0;i<n;i++)
        {
                for(j=0;j<m;j++)
                        cout << Y[i][j] << " ";
                cout <<endl;
        }
}
 
int main()
{
        cout <<endl<< "Using pointers"<<endl;
        trans_pointer();
        return 0;
}
Так должно работать.
Должно, но видимо не обязано...

Прыгала, прыгала, к вам на форум припрыгала...
Zayka вне форума Ответить с цитированием
Старый 18.04.2011, 00:15   #4
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

уберите ввод n,m и задайте их как константы
const int n=10;
const int m=10;

зы: компилер классный.
onewho вне форума Ответить с цитированием
Старый 18.04.2011, 00:30   #5
Zayka
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
уберите ввод n,m и задайте их как константы
const int n=10;
const int m=10;

зы: компилер классный.
Но мне надо обязательно чтобы была возможность ввода с клавиатуры...
Прыгала, прыгала, к вам на форум припрыгала...
Zayka вне форума Ответить с цитированием
Старый 18.04.2011, 00:55   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так нельзя же вроде задавать размер массива переменной (по крайней мере простым путем), в VC++ такое тоже не скомпилится.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2011, 01:05   #7
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

можно сделать максимальный размер например n=100, m=100 а ввести с клавы уже другие размеры которые и будут использоваться.
onewho вне форума Ответить с цитированием
Старый 18.04.2011, 01:12   #8
Zayka
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
можно сделать максимальный размер например n=100, m=100 а ввести с клавы уже другие размеры которые и будут использоваться.
А как это сделать, если константы прописаны ?
Прыгала, прыгала, к вам на форум припрыгала...
Zayka вне форума Ответить с цитированием
Старый 18.04.2011, 01:16   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Имеется в виду, что с клавы вводятся не максимальные размеры массивов, которые уже заданы константами, а та область, которая будет заполняться\использоваться.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 18.04.2011 в 01:19.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2011, 01:32   #10
Zayka
Новичок
Джуниор
 
Регистрация: 17.04.2011
Сообщений: 9
По умолчанию

Спасибо, onewho ! Разобрались
Прыгала, прыгала, к вам на форум припрыгала...
Zayka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление динамических массивов Dimarik Общие вопросы C/C++ 20 14.03.2011 12:30
сортировка динамических массивов в Си тина сорока Помощь студентам 2 26.02.2010 00:39
обработка динамических массивов funky Помощь студентам 0 11.05.2009 17:53
C++. Объявление динамических массивов. Парсифаль Помощь студентам 27 03.05.2009 23:21