Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Вадим Устименко
1 / 1 / 0
Регистрация: 09.10.2014
Сообщений: 35
1

Неправильно работает програма с динамическим произвольным массивом

14.10.2014, 21:03. Просмотров 227. Ответов 3
Метки нет (Все метки)

Условие:
Создать программу, которая вводит c клавиатуры двумерный массив целых чисел, заносит в одномерный массив суммы неотрицательных элементов по строкам, выводит этот массив на экран до первого нулевого элемента и отображает число оставшихся элементов.
Код:
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int m, n;
    cout << "Enter number of rows in the array:" << endl;
    cin >> m;  // Рядки
    cout << "Enter number of columns in the array:" << endl;
    cin >> n; // Стовбці
    int i;
    int **a = new int*[m];
    for (i = 0; i < m; i++)
    {
        a[i] = new int[n];
    }
    cout << "Enter elements of array:" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }
    int *b = new int[m];
    int j;
    int k = 0;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            if (a[i][j] > 0)
            {
                b[k] += a[i][j];
                k++;
            }
            else
            {
                continue;
            }
        }
 
    }
    while (b[k] != 0)
    {
        cout << '\v' << b[k] << endl;
        i++;
    }
    cout << m - i - 1 << endl;
    for (int i = 0; i < m; i++)
        delete[] a[i];
    delete[] a;
    delete[] b;
    system("pause");
    return 0;
}
Только начал учить язык. Если можно, объясняйте попроще.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2014, 21:03
Ответы с готовыми решениями:

Проблема с динамическим массивом С++
Есть задача: Дан Двумерный массив целых чисел. В каждой его строке найти: а) сумму отрицательных...

Работа с динамическим массивом
Дано: динамический двумерный массив. Определить сумму всех элементов (с помощью функции, массив и...

Проблема с динамическим массивом
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int...

Работа с динамическим массивом
Помогите, пожалуйста. В чем проблема? Компилирует, но выполнять не хочет. Надо вставить элемент в...

Проблема с динамическим массивом
Когда расширяется массив в первое поле первого элемента структуры вносятся изменения( появляются...

3
jurok_85
275 / 258 / 190
Регистрация: 21.02.2013
Сообщений: 617
Завершенные тесты: 1
14.10.2014, 21:30 2
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
#include <iostream>
using namespace std;
 
int main()
{
    int m, n;
    cout << "Enter number of rows in the array:" << endl;
    cin >> m;  // Рядки
    cout << "Enter number of columns in the array:" << endl;
    cin >> n; // Стовбці
    int i;
    int **a = new int*[m];
    for (i = 0; i < m; i++)
    {
        a[i] = new int[n];
    }
    cout << "Enter elements of array:" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }
    int *b = new int[m];
    int j;
    int k = 0;
    for (i = 0; i < m; i++)
    {
        b[k] = 0;////////priravnjaj elementi massiva k nulju, a to v masive b[] budet musornie virazenija
        for (j = 0; j < n; j++)
        {
            if (a[i][j] > 0)
            {
                b[k] += a[i][j];
 
            }
 
 
        }
        k++;// zdesj uvelichivaj k
 
    }
    k=0;///////////////priravnjaj k k nulju a to na etot moment k uze ne budet ravnjatsa nulju 
 
    while (b[k] != 0)// zdesj tebe k nulevoe nuzno
    {
        
        cout << " " << b[k] << endl;
        k++;
    }
 
    for (int i = 0; i < m; i++)
        delete[] a[i];
    delete[] a;
    delete[] b;
 
    return 0;
}
1
Вадим Устименко
1 / 1 / 0
Регистрация: 09.10.2014
Сообщений: 35
14.10.2014, 22:03  [ТС] 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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int m, n;
    cout << "Enter number of rows in the array:" << endl;
    cin >> m;  // Рядки
    cout << "Enter number of columns in the array:" << endl;
    cin >> n; // Стовбці
    int i;
    int **a = new int*[m];
    for (i = 0; i < m; i++)
    {
        a[i] = new int[n];
    }
    cout << "Enter elements of array:" << endl;
    int j;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }
    int *b = new int[m];
    int k = 0;
    for (i = 0; i < m; i++)
    {
        b[k] = 0;
        for (j = 0; j < n; j++)
        {
            if (a[i][j] > 0)
            {
                b[k] += a[i][j];
            }
            else
            {
                continue;
            }
            k++;
        }
 
    }
    k = 0;
    while (k<m)
    {
        if (b[k] != 0)
        {
            cout << b[k] << endl;
        }
        else
        {
            continue;
        }
        k++;
    }
    cout << m - k - 1 << endl;
    for (int i = 0; i < m; i++)
        delete[] a[i];
    delete[] a;
    delete[] b;
    system("pause");
    return 0;
}
0
alsav22
5452 / 4847 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 00:31 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
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 main()
{
    int m, n;
    cout << "Enter number of rows in the array:" << endl;
    cin >> m;  
    cout << "Enter number of columns in the array:" << endl;
    cin >> n; 
   
    int **a = new int*[m];
    for (int i = 0; i < m; i++)
    {
        a[i] = new int[n];
    }
    
    cout << "Enter elements of array:" << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cin >> a[i][j];
        }
    }
    
    cout << endl;
    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
            cout << a[i][j] << ' ';
        cout << endl;
    }
 
    int *b = new int[m];
    
    for (int i = 0; i < m; i++)
    {
        b[i] = 0;
        for (int j = 0; j < n; j++)
        {
            if (a[i][j] > 0)
            {
                b[i] += a[i][j];
            }
        }
    }
    
    cout << endl;
    for (int i = 0; i < m; ++i)
        cout << b[i] << ' ';
    cout << endl << endl;
        
    for (int i = 0; i < m; ++i)
    {
        if (b[i] != 0)
            cout << b[i] << ' ';
        else
        {
            cout << endl << m - i << endl;
            break;
        }
    }
 
    for (int i = 0; i < m; i++)
        delete [] a[i];
    delete [] a;
    delete [] b;
    
    system("pause");
    return 0;
}
0
Миниатюры
Неправильно работает програма с динамическим произвольным массивом  
15.10.2014, 00:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2014, 00:31

Странность с динамическим массивом
Меня в тупик поставило следующая ошибка (&quot;Название исполняемого файла&quot; has triggered a breakpoint.)...

Класс с динамическим массивом
доброго времени суток! помогите мне немножко: создать клас vector для сохранения массиву,...

Ошибка в функции с динамическим массивом
Данный код у меня выдаёт ошибку :Необработанное исключение в &quot;0x01281d09&quot; в &quot;Chernovick.exe&quot;:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru