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

Задача на добавление строки в массив - C++

Восстановить пароль Регистрация
 
stalcker23
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 7
08.12.2013, 18:58     Задача на добавление строки в массив #1
Вставить новую строку после всех строк, в которых нет ни одного четного эле*
мента.

Добавлено через 36 секунд
Помогите, кому неслишком сложно. Все задачи могу делать на массивы, кроме вставления строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2013, 18:58     Задача на добавление строки в массив
Посмотрите здесь:

C++ Добавление строки в двумерный динамический массив (исправить ошибки)
Добавление строки в стек C++
C++ Задача на массив и строки
C++ Нечетные строки матрицы заменить на заданный одномерный массив
Задача по многомерным массивам (Сформировать одномерный массив, каждый элемент которого равен количеству элементов соответствующей строки, больших да) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mickey_smith
7 / 7 / 1
Регистрация: 20.11.2013
Сообщений: 32
08.12.2013, 19:22     Задача на добавление строки в массив #2
Можете выложить что уже написали? Туда допишем.
stalcker23
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 7
08.12.2013, 19:29  [ТС]     Задача на добавление строки в массив #3
Сейчас

Добавлено через 3 минуты
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
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
#include <iostream> 
using namespace std;
 
int ** creat(int &n, int &m)
{
    cin >> n;
    cin >> m; 
    
    int **mas=new int *[n]; 
    
    for (int i=0; i<n; i++)
        mas[i]=new int [m]; 
    
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            cin>>mas[i][j];
 
    return mas;
}
 
void print (int **mas, int n, int m)
{
    for (int i=0; i<n; i++, cout<<endl) 
        for (int j=0; j<m; j++)
            cout<<mas[i][j]<<"\t";
} 
 
void deleteMas(int **mas, int n)
{
    for (int i=0;i<n; i++)
        delete [] mas[i]; 
//  delete [] mas;
}
 
int main()
{
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    
    int n, m;
    int **a = creat(n,m); //создаем и заполняем матрицу а
    
    int n2 = 2 * n; //п- текущее количество строк, п2 -максимально возможное
 
        for (int i = 0; i < n; i++) 
            for (int j = 0; j < m; j++)
            {
                if (a[i][j]%2==0)
                {
                  for (int t = n-1; t >= 0; --t) 
                     for (int j = 0; j < m; j++)
                     a[t+1][j]=a[t][j];
                     ++n; 
                  for (int j = 0; j < m; j++)
                      a[i][j]=a[t][j];
            
        
        
        
        a[t]=new int [m]; 
        
        for (int j=0; j<m; ++j)
            cin>>a[t][j]; 
   }
                }
        print(a,n,m);
    } 
    
    deleteMas(a, n); 
    
    return 0;
}
Alex5
881 / 616 / 81
Регистрация: 12.04.2010
Сообщений: 1,551
08.12.2013, 20:58     Задача на добавление строки в массив #4
Вставка строки в матрицу.
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
39
// матрица a[i][j],  i<n,  j<m  ( n строк, m столбцов ) 
// вставить новую строку на k-ю позицию 0 <= k <= n 
// ( т.к. значения a и n будут изменены, то используются ссылки )
void insert( int** & a, int & n, int m, int k )
{
    if( ! a ) return; 
    if( k < 0 || k > n ) return;
 
    int** b = new int*[n+1]; 
 
    // строки a[0], a[1], ..., a[k-1] не меняются 
    for( int i = 0; i < k; ++i ) 
        b[i] = a[i];
 
    // строки a[k], ..., a[n-1] сдвигаются на 1 позицию вниз 
    for( int i = k; i < n; ++i )
    {
        b[i+1] = a[i];
    }
 
    // на k-м месте новая строка 
    b[k] = new int[m];
 
    // старые значения a[] теперь не нужны 
    delete[] a;
 
    a = b;
 
    // т.к. добавили одну строку, теперь число строк n+1
    ++n;
 
    // новую строку заполним нулями 
    for( int j = 0; j < m; ++j )
    {
        b[k][j] = 0;
    }
 
    return;
}
Yandex
Объявления
08.12.2013, 20:58     Задача на добавление строки в массив
Ответ Создать тему
Опции темы

Текущее время: 05:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru