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

Обработка массивов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Даны два числа. Найти их наибольший общий делитель http://www.cyberforum.ru/cpp-beginners/thread1143786.html
Пожалуйста, помогите у меня превышено время работы Даны два числа. Найти их наибольший общий делитель. Формат входных данных Вводятся два натуральных числа, не превышающих 109. Формат выходных данных Выведите НОД введенных чисел. #include <iostream> using namespace std; int main(){ int a(0), b(0), d(1);
C++ Дан массив размером n×n. Подсчитать среднее арифметическое, расположенных над побочной диагональю Дан массив размером n×n. Подсчитать среднее арифметическое ненулевых элементов, расположенных над побочной диагональю. Помогите организовать цикл, который поможет подсчитать... #include<iostream> #include<stdio.h> #include<conio.h> #include<stdlib.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1143784.html
Немогу перегрузить оператор, выдает ошибку C++
при попытке f = d - e выдает ошибку no match for 'operator=' не могу понять в чем проблема #include <iostream> #include <string> #include <math.h> #include <time.h> #include <stdlib.h>
C++ Перегрузка operator->()
Всем привет! Прохожу тему дескрипторов и меня удивляет как работает перегруженный operator->(). //какой то интерфейс struct Abstr { virtual void show() {} virtual ~Abstr() {} };
C++ Упорядочить массив целых положительных чисел по возрастанию, определить номер минимального простого числа http://www.cyberforum.ru/cpp-beginners/thread1143773.html
помогите исправить программу на с++ Упорядочить массив целых положительных чисел по возрастанию, определить но- мер минимального простого числа до и после упорядочивания массива. Создать функции для сортировки массива и определения простого числа. #include <iostream> #include <time.h>
C++ Метод итерации для решения слау Ребят помогите исправить код. Уже второй день с ним бьюсь. *#include <iostream> #include <math.h> using namespace std; void iteration(double**a,double *b,double *x,int n) { int i,j; //double norma; double *xn=new double ; подробнее

Показать сообщение отдельно
grom73
0 / 0 / 0
Регистрация: 27.02.2014
Сообщений: 19
09.04.2014, 19:36     Обработка массивов
помогите исправить программу

Удалить из массива целых чисел все нули. Сформировать два новых массива. В
первый массив переписать все четные элементы заданного массива, во второй – все
нечетные. Упорядочить первый массив по убыванию, второй – по возрастанию.
Создать функции для удаления элемента и для сортировки.


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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru