Форум программистов, компьютерный форум 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++ Научите создавать эхо сервер Это возможно звучит очень нагло. Но передо мной поставили такую задачу, создать эхо сервер и эхо клиент, и чтобы я разбиралась в этом) Можно посидеть в скайпе, поболтать) В ответ помогу чем смогу) подробнее

Показать сообщение отдельно
Pascal_Noob
0 / 0 / 0
Регистрация: 24.12.2015
Сообщений: 69
04.04.2016, 05:55     Упростить программу
Ребята помогите максимально упростить код программы и убрать все лишнее, чтобы она работала.
При сдаче лабы на борланде выдавал ошибки(
Задание:Удалить из массива целых чисел все нули. Сформировать два новых массива. В первый переписать все элементы данного массива с четными номерами, во втором-с нечетными. Найти разницу между наибольшими значениями полученных массивов. Создать функции для удаления элементов и для определения наибольшего значения в массиве.
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
147
148
149
150
151
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int *a;
int *b1, *b2;
char *rus;
int chet_count;
int max_b1;
int max_b2;
void set_max(int *b, int &max, int sz);
char *printrus(char *text, char *rus)
{
    try
    {
        rus = new char[255];
    }
    catch(bad_alloc xa)
    {
        exit(1);
    }
    CharToOem(text, rus);
    return rus;
}
 
void init_a(int *&a, int sz)
{
    try
    {
        a = new int[sz];
    }
    catch(bad_alloc xa)
    {
        cout << printrus("Ошибка", rus);
        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);
    int razn = max_b1 - max_b2;
    cout << printrus("Разница между максимальными элементами созданных массивов: ", rus)
         << max_b1
         << " - "
         << max_b2
         << " = "
         << razn
         << "\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 remove_zero(int sz, int zero_count)
{
    if(zero_count == 0) return 0;
    int tmp_size = sz - zero_count;
    int tmp[tmp_size];
    int j = 0;
    for(int i = 0; i < sz; i++)
    {
        if(a[i] == 0) continue;
        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++;
    }
    return tmp_size;
}
 
int main()
{
    cout << printrus("Массив", rus)
         << endl;
    chet_count = 0;
    max_b1 = 0;
    max_b2 = 0;
    cout << printrus("Введите размер массива: ", rus);
    int sz;
    cin >> sz;
    init_a(a, sz);
    int zero_count = 0;
    for(int i = 0; i < sz; i++)
    {
        cout << printrus("Введите ", rus)
             << i
             << printrus(" элемент массива: ", rus);
        cin >> a[i];
        if(a[i] == 0) 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;
    delete [] rus;
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru