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

Ошибка в одноиерном динамическом массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ не разберусь как переработать программу с учетом использования заголовочных файлов, модулей и пользовательских функций http://www.cyberforum.ru/cpp-beginners/thread859225.html
#include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> FILE *fl; typedef struct { char author;
C++ Шифрование Доброго времени суток, сегодня весь день сидел и пытался разобрать задачу. Задается натуральное число k и перестановка чисел 1, ... , k с помощью последовательности натуральных чисел c1, ... , ck, в которую входит каждое из чисел 1, ... , k. При шифровке в исходном тексте последовательно выделяются группы по k символов, и к каждой группе применяется зафиксированная перестановка, например:... http://www.cyberforum.ru/cpp-beginners/thread859222.html
C++ Регулярные выражения
Может кто нибудь подсказать реализацию регулярных выражений на С/С++?
Строки: верно ли, что в заданной строке любое несимметричное слово имеет четную длину C++
Дано символьный рядок.Проверить, чи верно что в заданной строке любое несеметричне слово имеет парную длину.
C++ Нужно дописать карточную игру (ХЕЛП!) http://www.cyberforum.ru/cpp-beginners/thread859186.html
Помогите пожалуйста дописать карточную игру #include <iostream> #include <Windows.h> #include <math.h> #include <conio.h> using namespace std; void main () { SetConsoleOutputCP(1256);
C++ Помощь с игрой точки-квадраты Друзья, помогите пожалуйста, делаю игру точки-квадраты http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BB%D0%BE%D1%87%D0%BA%D0%B8_(%D0%B8%D0%B3%D1%80%D0%B0). На моменте с построением линии прога крашится. как лучше нарисовать линии между точками? что-то слегка запутался... #include <iostream> #include <cstdlib> #include <time.h> #include <string> using namespace std; подробнее

Показать сообщение отдельно
Ilya123
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 45
08.05.2013, 19:50  [ТС]     Ошибка в одноиерном динамическом массиве
Цитата Сообщение от Genn55 Посмотреть сообщение
Мне не понятно что может делать это
C++
1
2
3
4
5
6
7
 else if(i >= k && i < k + n) {
 
                        newArr[i] = Arr[count];
 
                        count++;
 
                }
count у вас =0 ну и дальше я не понял.

Добавлено через 38 минут
Что то вся конструкция не понятна
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
    // Создание временного массива для хранения новых елементов 
        int *Arr = new int[n];
        // Ввод значений новых елементов
        cout << "Элементы К:\n";
        
     for (int i = 0; i<n; i++)  
{
Arr[i]=rand()%100;
cout<< Arr[i] <<" ";}
     cout<<endl<<endl;
        // Создание нового массива, который будет 
 
        // содержать елементы начального массива и 
 
        // новые елементы массива новых елементов
 
        int* newArr = new int[m + n];
 
        // Для прохода по массиве новых елементов
 
        int count = 0;
 
 
 
        for(int i = 0; i < m + n; i++) {
 
                // Вставляем елементы старого массива в новый
 
                if(i < k) {
 
                       
 
                }
 
                // Вставляем новые елементы из массива новых елементов
 
                else if(i >= k && i < k + n) {
 
                        newArr[i] = Arr[count];
 
                        count++;
 
                }
 
                // Вставляем елементы старого массива в новый
 
                else {
 
                        newArr[i] = arr[i - count];
 
                }
                
        }
C++
1
newArr[i] = Arr[count];
будет равен
C++
1
Arr[i]=rand()%100;
получается что временный массив уже заполнен и
C++
1
 newArr[i] = arr[i];
не понятно что куда пойдет.Если вы хотите переписать одно в другое надо сделать что то типа
C++
1
2
3
new=A[];
                             A[]= a[];
                             a[]=new;
в этом случае содержимое A[]перепишется в a[]
Эту всю конструкцию использовал от готовой программы (рабочей),Попробую переделать по вашим данным. Спасибо
Кликните здесь для просмотра всего текста
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
 
 
int main(){
 
        setlocale(0, "Rus");
 
        // Ввод параметров начального массива
 
        int m;
 
        cout << "Введите размер массива: ";
 
        cin >> m;
int *arr; arr=new int[m]; cout << endl;
srand(time(0));
cout<<"Массив: "<<endl;
for (int i = 0; i < m; i++) {arr[i] = rand()%100; cout<< arr[i]  <<  " ";}
cout << endl;
 
        // Ввод кол-ва новых елементов
 
        int n;
 
        cout << "Введите кол-во елементов для добавления: ";
 
        cin >> n;
 
        // Ввод индекса с которого начинаеться вставка
 
        int k;
 
        cout << "Введите индекс с которого начинаеться вставка (от 0 до "<<m<<"): ";
 
        cin >> k;
                while (abs(k)>m)
    {
        cout<<"Введите индекс с которого начинаеться вставка (от 0 до "<<m<<"):  ";
        cin >> k;
        
    }
 
 
        // Создание временного массива для хранения новых елементов
 
        int* Arr = new int[n];
 
        // Ввод значений новых елементов
 
        cout << "Элементы К:\n";
        cout<<endl;
     for (int i = 0; i<n; i++)  
{
Arr[i]=rand()%100;
cout<< Arr[i] <<" ";}       
        
        
 
        // Создание нового массива, который будет 
 
        // содержать елементы начального массива и 
 
        // новые елементы массива новых елементов
 
        int* newArr = new int[m + n];
 
        // Для прохода по массиве новых елементов
 
        int count = 0;
 
 
 
        for(int i = 0; i < m + n; i++) {
 
                // Вставляем елементы старого массива в новый
 
                if(i < abs(k)) {
 
                        newArr[i] = arr[i];
 
                }
 
                // Вставляем новые елементы из массива новых елементов
 
                else if(i >= k && i < k + n) {
 
                        newArr[i] = Arr[count];
 
                        count++;
 
                }
 
                // Вставляем елементы старого массива в новый
 
                else {
 
                        newArr[i] = arr[i - count];
 
                }
 
        }
 
        // Удаляем начальный массив
 
        delete[] arr;
 
        // Удаляем временный массив новых елементов
 
        delete[]  Arr;
 
        // Выводим новый массив после вставки новых елементов в консоль
        cout<<endl;
        cout<<endl;
        cout << "Массив после добавления новых елементов: \n";
 
        for(int j = 0; j < m + n; j++) {
 
                cout << "[" << j << "] -> " << newArr[j];
 
                cout << "\n";       
 
}
system("pause");
}
 
Текущее время: 09:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru