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

Динамический массив, исправить ошибку - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение функции http://www.cyberforum.ru/cpp-beginners/thread611046.html
• Исходные данные: a=5,2 x=8,2*100
C++ Блок-схема Не могу разобраться с блок-схемами..вот есть ф-ия menu.как по ней нарисовать блок схему?я маленько начал..но дальше не идет) куда писать return..в общем кто сможет объясните) int menu() //меню { int choice; cout<<"Меню:"<<endl; cout<<"1.Создать элемент\n" <<"2.Вывести базу на экран\n" <<"3.Состовление заявки\n" <<"4.Выход\n" http://www.cyberforum.ru/cpp-beginners/thread611031.html
C++ Программа вычисляющая сумму первых 150 членов арифметической прогрессии
Помогите пожалуйста написать программу на С++, вычисляющую сумму первых 150 членов арифметической прогрессии со следующими параметрами: a1 = -200, d = 0,2.
Строка: Выбрать из текстовой строки все слова, входящие в данный набор и вывести их на печать C++
Дан набор слов и произвольная текстовая строка. Выбрать из текстовой строки все слова, входящие в данный набор и вывести их на печать, используя функции strtok, strcmp. вот у меня кое-что вышло #include <iostream> #include <conio.h> #include <string.h> using namespace std; void main() { const int n = 3;
C++ Загрузка разных версий bmp в текстуру http://www.cyberforum.ru/cpp-beginners/thread610943.html
#pragma pack(push,2) typedef struct _WinBMPFileHeader { WORD FileType; DWORD FileSize; WORD Reserved1; WORD Reserved2; DWORD OffBits; } WINBITMAPFILEHEADER; #pragma pack(pop)
C++ Пример на с++ S=1-x2/2!+...+(-1)n * x2n/(2n)! Диапазон изменения аргумента: 0,1<=x<=1 Как решить в си++ это? строчка примера будет выглядеть так? s=1-x(pow,2)/2!+(-1)(sqrt n)*x(sqrt 2*n)/(2n)! подробнее

Показать сообщение отдельно
flock
3 / 1 / 1
Регистрация: 23.09.2011
Сообщений: 66
21.06.2012, 16:17     Динамический массив, исправить ошибку
Здравствуйте, помогите найти ошибку:
Все четные элементы целочисленного массива К(п) поместить в массив L(n), а нечетные — в массив М(п). Подсчитать количество тех и других.

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 <iostream.h>
#include <iomanip.h>
#include <conio.h>
main()
{
    int n,ch,nech;
    system("chcp 1251");                 
    system("cls");
    cout<<"Кол-во элементов массива: ";
    cin>>n;
    int *p=new int[n];          // выделение памяти под n элементов
    cout<<endl<<"\tВведите элементы массива\n";
    for (int i = 0; i < n; i++)
    {
        cin>>p[i];cout<<setw(2);
    }
 
    ch=0;nech=0;
    for (int i = 0; i < n; i++)
    {
        if (p[i]%2)                // проверка на нечетность элемента
        {
            nech++;                // подсчитывание кол-ва нечетных элементов
        }
        if (!(p[i]%2) && p[i]!=0)  // проверка на четность элемента
        {
            ch++;                  // подсчитывание кол-ва четных элментов
        }
    }
 
    int *p1=new int[nech];      // выделение памяти для нечетных элементов
    int *p2=new int[ch];       // выделение памяти для четных элементов
    ch=0;nech=0;
 
    for (int i = 0; i < n; i++)
    {
        if (p[i]%2)             // проверка на нечетность элемента
        {
            p1[nech]=p[i];
            nech++;              // подсчитывание кол-ва нечетных элментов
        }
        if (!(p[i]%2) && p[i]!=0)        // проверка на четность элемента
        {
            p2[ch]=p[i];
            ch++;              // подсчитывание кол-ва четных элментов
        }
        
    }
    
    cout<<"\nКол-во нечетных элементов : "<<nech;
    cout<<"\nМассив из нечетных элементов: ";
    for (int i = 0; i <= nech-1; i++)
    {
        cout<<setw(3)<<p1[i];     
    }
 
    cout<<"\n\nКол-во четных элементов : "<<ch;
    cout<<"\nМассив из четных элементов: ";
    for (int i = 0; i <= ch-1; i++)
    {
        cout<<setw(3)<<p2[i];
    }
    cout<<"\n\n";
    system("pause");
    delete(p); delete(p1); delete(p2);
}

После того, как p[i] заменил на *(p+i) (для динамического массива), программа перестала запускаться


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 <iostream.h>
#include <iomanip.h>
#include <conio.h>
main() 
{
    int n,ch,nech;
    system("chcp 1251");                 
    system("cls");
    cout<<"Кол-во элементов массива: ";
    cin>>n;
    int *p=new int[n];          // выделение памяти под n элементов
    cout<<endl<<"\tВведите элементы массива\n";
    for (int i = 0; i < n; i++)
    {
        cin>>*(p+i);cout<<setw(2);
    }
 
    ch=0;nech=0;
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)                // проверка на нечетность элемента
        {
            nech++;                // подсчитывание кол-ва нечетных элементов
        }
        if (!*(p+i)%2) && p[i]!=0)  // проверка на четность элемента
        {
            ch++;                  // подсчитывание кол-ва четных элментов
        }
    }
 
    int *p1=new int[nech];      // выделение памяти для нечетных элементов
    int *p2=new int[ch];       // выделение памяти для четных элементов
    ch=0;nech=0;
 
    for (int i = 0; i < n; i++)
    {
        if (*(p+i)%2)             // проверка на нечетность элемента
        {
            *(p1+nech)=*(p+i);
            nech++;              // подсчитывание кол-ва нечетных элментов
        }
        if (!(*(p+i)%2) && *(p+i)!=0)        // проверка на четность элемента
        {
            *(p2+ch)=*(p+i);
            ch++;              // подсчитывание кол-ва четных элментов
        }
        
    }
    
    cout<<"\nКол-во нечетных элементов : "<<nech;
    cout<<"\nМассив из нечетных элементов: ";
    for (int i = 0; i <= nech-1; i++)
    {
        cout<<setw(3)<<*(p1+i);     
    }
 
    cout<<"\n\nКол-во четных элементов : "<<ch;
    cout<<"\nМассив из четных элементов: ";
    for (int i = 0; i <= ch-1; i++)
    {
        cout<<setw(3)<<*(p2+i);
    }
    cout<<"\n\n";
    system("pause");
    delete(p); delete(p1); delete(p2);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru