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

Упростить программу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Пример конструктора копирования не понятен http://www.cyberforum.ru/cpp-beginners/thread1702562.html
Задание: есть класс, одним из пунктом является написание класса копирования. Есть такой код Phone::Phone(Phone *a){ this->set_firstName(a->get_firstName()); this->set_lastName(a->get_lastName()); this->set_fatherName(a->get_fatherName()); this->set_adress(a->get_adress()); this->set_number(a->get_number()); this->inCalls = a->get_inCalls();
C++ На чем сейчас программируют графику? Помогите решить вопрос.Начал работать в с++ с графикой,изучил уже существующие темы,но так и не смог для себя найти ответ,на чем сейчас программируют графику(именно в плюсах)? http://www.cyberforum.ru/cpp-beginners/thread1702533.html
C++ Произведение элементов одномерного массива
Простите за ошибку, нужно произведение всех элементов массива. Все... просто уже плывут мозги... Посмотрите на этот ужас и скажите что не так. Не считает произведение элементов. #include <iostream> #include <conio.h> using namespace std; int main () {setlocale (LC_ALL , "Russian"); const int N = 10; int Arr; cout << "Заполнение массива Arr'\n"; for (int i(0);i<N; i++)
Передача аргументов в конструктор C++
У меня есть в классе конструктор по умолчанию: Port(const char * br = "none",const char * st = "none",int b = 0); Я создал производный от этого класс в котором также используется динамическое выделение памяти и в конструкторе производного класса я хочу вызвать конструктор базового класса, но только с двумя аргументами например: VintagePort::VintagePort(const char *br, int b, const char *nn,...
C++ Почему не работает цикл получения параметров объекта? http://www.cyberforum.ru/cpp-beginners/thread1702500.html
Есть такой код int j = 0; while(!feof(f)) { (**ob).get_p(f, name_1, name_2, name_3, &x, &y); ++j; } где ob-объект класса. Почему при удалении из кода счетчика j все нормально работает, а сним программа не запускается?
C++ Научите создавать эхо сервер Это возможно звучит очень нагло. Но передо мной поставили такую задачу, создать эхо сервер и эхо клиент, и чтобы я разбиралась в этом) Можно посидеть в скайпе, поболтать) В ответ помогу чем смогу) подробнее

Показать сообщение отдельно
marat_miaki
97 / 86 / 31
Регистрация: 08.04.2013
Сообщений: 304
04.04.2016, 07:36     Упростить программу
Как то так, только не разобрался почему вылетает когда 0 нет
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int *a;
int *b1, *b2;
int chet_count;
int max_b1;
int max_b2;
void set_max(int *b, int &max, int sz);
int remove_zero(int sz, int zero_count);
 
void init_a(int *&a, int sz)
{
    try
    {
        a = new int[sz];
    }
    catch(bad_alloc xa)
    {
        cout << "Ошибка";
        system("pause");
        exit(1);
    }
    //return *a;
}
 
void create_b(int sz)
{
    int b1_size = chet_count;
    int b2_size = sz - chet_count;
    init_a(b1, b1_size);
    init_a(b2, b2_size);
    int j1 =  0, j2 = 0;
    for(int i = 0; i < sz; i++)
    {
        if(i%2 == 0)
        {
            b1[j1++] = a[i];
        }
        else
        {
            b2[j2++] = a[i];
        }
    }
    cout << "b1------------------------------------\n";
    for(int i = 0; i < b1_size; i++)
    {
        cout << b1[i]
             << "\t";
    }
    cout << "\nb2------------------------------------\n";
    for(int i = 0; i < b2_size; i++)
    {
        cout << b2[i]
             << "\t";
    }
    cout << "\n";
 
    set_max(b1, max_b1, b1_size);
    set_max(b2, max_b2, b2_size);
cout << "Разница между максимальными элементами созданных массивов: ";
    if (max_b1 > max_b2){
    
    cout << max_b1
         << " - "
         << max_b2
         << " = "
         << max_b1-max_b2
         << "\n";
    }
    else  {   cout << max_b2
         << " - "
         << max_b1
         << " = "
         << max_b2-max_b1
         << "\n";
    }
}
 
void set_max(int *b, int &max, int sz)
{
    max = b[0];
    for(int i = 0; i < sz; i++)
    {
        if(max < b[i]) max = b[i];
    }
}
 
int main()
{
 
//setlocale(LC_ALL, "rus");
    cout << "Массив"  << endl;
    chet_count = 0;
    max_b1 = 0;
    max_b2 = 0;
    cout << "Введите размер массива: ";
    int sz;
    cin >> sz;
    init_a(a, sz);
    int zero_count = 0;
    for(int i = 0; i < sz; i++)
    {
        cout << "Введите " << i <<" элемент массива: ";
        cin >> a[i];
        if(a[i] == 0) zero_count++;
    }
    if (zero_count)
    sz = remove_zero(sz, zero_count);
    for(int i = 0; i < sz; i++)
    {
        cout << a[i]
             << "\t";
    }
    cout << endl;
    create_b(sz);
    delete [] a;
    delete [] b1;
    delete [] b2;
    system("pause");
    return 0;
}
 
int remove_zero(int sz, int zero_count)
{
   int tmp_size = sz - zero_count;
   int *tmp = new int[tmp_size];
    int j = 0;
    for(int i = 0; i < sz; i++)
    {
        if(a[i] != 0)
        {
            tmp[j++] = a[i];
        }
    }
    init_a(a, tmp_size);
    for(int i = 0; i < tmp_size; i++)
    {
        a[i] = tmp[i];
        if(i%2 == 0) chet_count++;
    }
    delete [] tmp;
    return tmp_size;
}
Добавлено через 7 минут
110 тогда лишнее
 
Текущее время: 10:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru