Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите вставить строку в матрицу

73K
17 февраля 2012 года
stalkervlad
7 / / 17.11.2011

Код:
void stroka(int **m, int m1, int m2, int pos)
{
for(int i=0; i<m1+1; i++)
{
for(int j=0; j<m2; j++)
        {
           if(i<pos)
           {
                   m[j]=m[j];
               
           }
           if(i==pos-1)
           {
                   
                   m[j]=0;
                   cout<<m[j]<<' ';
           }
 
           if(i>pos-1)
           {
                   
                   m[i-1][j]=m[i-1][j];
                       
                 
           }
         
              cout<<m[j]<<' ';
 
                }
               
        cout<<endl;    
}
}

10K
20 февраля 2012 года
Cybernetic
106 / / 22.07.2009
Если вы собираетесь изменить размер объекта матрица, то вам не обойтись без перераспределения памяти.

Можно сделать так:
Код:
int** stroka(int **m, int m1, int m2, int pos)
{
    int* newLine = new int[m2]; // создаем в памяти новую строку с m2 столбцами

    int** newMatrix = new int*[m1+1]; //создание матрицы с новым количеством строк
    for (int i = 0; i < (m1+1); i++)
    {
        if (i < pos)                //строки до нужного номера
            newMatrix[ i] = m[ i];
        else if (i > pos)           //строки после нужного номера
            newMatrix[ i] = m[ i - 1];
        else                    //запись новой строки
            newMatrix[ i] = newLine;
    }

    return newMatrix;
}


Обратите внимание, что нужно вернуть указатель на новую матрицу. Если в функции присвоить новую матрицу старому указателю, то при выходе из функции этот указатель потрется, и у вас будет старый указатель. Если старая матрица не нужна, то по выходе из функции нужно не забыть сделать

 
Код:
delete m;


Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог