0 / 0 / 0
Регистрация: 15.04.2018
Сообщений: 1
1

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

15.04.2018, 05:35. Показов 966. Ответов 2
Метки нет (Все метки)

Не работает функция изменения в массиве, которая спрашивает определенный индекс и изменяет числа слева и справа от этого индекса. при вводе индекса программа продолжает просить индекс. 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <stdio.h>
#include <iostream>
#include <iomanip> 
using namespace std;
void initmas(int *p, int n)
 
{
    int *tp; // рабочий указатель (локальная переменная)
 
    for (tp = p; tp < (p + n); tp++)
 
        *tp = rand() % 5;  // заполняет случайными числами
}
void Pechatx(int** arr, const int N, const int M) {
    for (int i = 0; i<N; i++) {
        for (int j = 0; j<M; j++) {
            cout << arr[i][j] << '\t';
        }   cout << '\n';
    }
    delete[]arr;
}
 
void pechat(int *p, int n)
{
    int *tp;
    for (tp = p; tp < (p + n); tp++)
    {
        cout << *tp;
    }
    
}
void izmenenie(int *p, int n)
{
    int  s;
    int *tp;
    cout << "введите индекс" << endl;
    cin >> s;
    for (tp = p; tp < (p + s); tp++)
        if (*tp % 2 != 0)
    
            *tp--;
            
        
    for (tp = p; tp < (p + n),tp > (p + s); tp++)
        if (*tp % 2 == 0)
              
        
            *tp++;
        
        
 
    
}
 
int main()
{
    const int N = 10;
    int row = 10, col = 2;
    int chs[N];
    int **neche = new int*[row];   //Создание строк
    for (int i1 = 0; i1 < row; i1++)
    {
        neche[i1] = new int[col];  //Создание колонок для каждой строки
    }
 
    int **che = new int*[row];   //Создание строк
    for (int i2 = 0; i2 < row; i2++)
    {
        che[i2] = new int[col]; //Создание колонок для каждой строки
    }
    int i, s;
    initmas(chs, N);
    for (i = 0; i < N; i++)
    {
        if (chs[i] % 2 == 0)
        {
            s = chs[i];
            che[i][0] = s;
            che[i][1] = i;
        }
        else
        {
            neche[i][0] = chs[i];
            neche[i][1] = i;
        }
    }
    cout << "изначальный массив" << endl;
    pechat(chs, N);
    cout << '\n';
    cout << "четные числа и их индекс в изначальном массиве" << endl;
    Pechatx(che, row, col);
    izmenenie(chs, N);
    pechat(chs, N);
 
    return 0;
}
Вот сама функция
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void izmenenie(int *p, int n)
{
    int  s;
    int *tp;
    cout << "введите индекс" << endl;
    cin >> s;
    for (tp = p; tp < (p + s); tp++)
        if (*tp % 2 != 0)   
            *tp--;              
    for (tp = p; tp < (p + n),tp > (p + s); tp++)
        if (*tp % 2 == 0)             
            *tp++;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2018, 05:35
Ответы с готовыми решениями:

Оценка кода динамического двумерного массива
Доброго времени суток. Прошу оценить правильность выделения и удаления памяти, а также заполнения...

Почему не работает часть кода?
Всем хай! Почему не работает часть кода с 27 по 29 строчку, в файле с функциями, я получаю в...

Как работает эта часть кода?
element *el, *n_el; int i; n_el = (element *)malloc(sizeof(element)); printf(&quot;Vvedite FIO:...

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

2
3 / 3 / 2
Регистрация: 18.09.2013
Сообщений: 30
15.04.2018, 11:08 2
А под *tp память не выделена.
0
81 / 77 / 34
Регистрация: 13.02.2018
Сообщений: 1,347
15.04.2018, 11:09 3
Цитата Сообщение от xromuchka Посмотреть сообщение
int *tp;
int *tp = new int;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.04.2018, 11:09
Помогаю со студенческими работами здесь

Отрицательная часть динамического массива
Подскажите пожалуйста решение следующей проблемы: //задаю массив f : array of Float; ......

Не работает часть кода
program Nervnyaya_Kletka; var A, B, I, D, F, K, G, X, Z: longint; S1, C: string; begin...

Не работает часть кода
по какой-то причине не работает часть кода, ошибок я не замечаю, но код не хочет работать, в чём...

Не работает часть кода
String test = str.replaceAll(&quot;Сумма(1,2)&gt;&quot;, &quot;sum(1,2);&quot;); Не заменяет в переменной str String...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru