Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
 Аватар для Andrey1997
-1 / 2 / 0
Регистрация: 03.10.2015
Сообщений: 67

Оставить без изменения последовательность, если она упорядочена

21.10.2015, 00:27. Показов 4075. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны целые числа а1...аn, где n - целое положительное число (n<=100). Оставить без изменения последовательность, если она упорядочена по неубыванию или невозрастанию; в противном случае удалить из последовательности все члены, порядковые номера которых кратны четырем, сохранив прежним порядок остальных членов.

Добавлено через 1 час 55 минут
help
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2015, 00:27
Ответы с готовыми решениями:

Если последовательность отсортирована по возрастанию, оставить ее без изменения. Иначе получить иную последовательность
Дана последовательность действительных чисел X1,X2,X3,…,Xn (n&gt;2, заранее неизвестно). Если последовательность отсортирована по возрастанию,...

Последовательность упорядочена (не упорядочена) по возрастанию и упорядочена (не упорядочена) по убыванию
Всем доброго времени суток! Очень прошу помочь написать правильно решение задачи. Пользователь вводит положительное число. Нужно...

Даны действительные числа a1.an , где n – натуральное число. Оставить без изменения последовательность a1
Даны действительные числа a1...an , где n – натуральное число. Оставить без изменения последовательность a1....an, если она упорядочена по...

37
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
22.10.2015, 16:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Andrey1997 Посмотреть сообщение
порядковые номера которых кратны четырем
Порядковые номера, а не числа. Не надо путать.

___________
В функции создания нового массива поменяйте 53 строчку. При создании сделать +1.
C++
1
int *A = new int[Row+1];  //Создаем новый массив
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.10.2015, 16:41
Andrey1997, а это вообще что за задание? В универе контрольная работа?
0
 Аватар для Andrey1997
-1 / 2 / 0
Регистрация: 03.10.2015
Сообщений: 67
22.10.2015, 16:45  [ТС]
daslex, да я перепутал, но порядковые номера кратные четырем тоже не удаляет, когда заменил строчку исчезла ошибка, но теперь в 6 раз больше цифр выводится при запуске

Добавлено через 40 секунд
gru74ik, нет, это лаба, которую дают раз в неделю, я на 1 курсе и тут такое (но до этого лабы были легче)..
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
22.10.2015, 16:48
Ошибка у меня есть. Когда найду фиг знает. Если опередят, ничего против иметь не буду
0
 Аватар для Andrey1997
-1 / 2 / 0
Регистрация: 03.10.2015
Сообщений: 67
22.10.2015, 17:01  [ТС]
gru74ik, т.к. времени уже нет попробую сдать с stl, но при компиляции выдает ошибки, в чем проблема?
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
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
    int n;
    std::vector< int > arr;
    cout << "enter n: \n ";
    cin >> n;
    bool issorted = arr.is_sorted(arr.begin(), arr.end());
    if (issorted)
        std::cout << "\nThe array is sorted.\n";
    else
        std::cout << "\nThe array is not sorted.\n";
    for (size_t i = 0; i < arr.size(); ++i)
    {
        if (!((i + 1) % 4))
        {
            arr.erase(arr.begin() + i);
        }
    }
    arr.shrink_to_fit();
    system("pause");
    return 0;
}
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
22.10.2015, 18:08
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
/*ФУНЦИЯ ЗАПОЛНЕНИЯ*/
void fill_rand_arr(int *&Arr, const unsigned &Row) {
    for (unsigned i = 0; i<Row; i++)  Arr[i] = rand() % 50 - 25;
}
 
/*ФУНКЦИЯ ВЫВОДА НА ЭКРАН*/
void print_arr(int *&Arr, const unsigned &Row) {
    for (unsigned i = 0; i<Row; i++) {
        cout << Arr[i] << "  ";
    }
}
 
/*ФУНКЦИЯ ВЫДЕЛЕНИЯ ПАМЯТИ*/
void create_arr(int *&Arr, const unsigned &Row) {
    Arr = new int[Row];
}
 
/*ФУНЦИЯ ОЧИСТКИ ПАМЯТИ*/
void destroy_arr(int *&Arr, const unsigned &Row) {
    delete[]Arr;
    Arr = NULL;
}
 
/*ФУНКЦИЯ ПРОВЕРКИ УПОРЯДОЧЕННОСТИ ОБОИХ ВИДОВ*/
bool is_sorted(int *&Arr, const unsigned &Row) {
    bool up, down;
    unsigned i;
 
    for (i = 0; i<Row - 1; i++) {
        up = Arr[i] < Arr[i + 1];
        if (!up) break;
    }
 
    for (i = 0; i<Row - 1; i++) {
        down = Arr[i] > Arr[i + 1];
        if (!down) break;
    }
    return (up || down);
}
 
/*ФУНКЦИЯ СОЗДАНИЯ НОВОГО МАССИВА*/
void arr_transform(int *&Arr, int &Row) {
    
    int cur1 = 0, cur2 = 0;
 
    int * A = new int[Row - Row/4]; 
 
    while (cur1 < Row) {
        
        if (cur1 % 4) A[cur2++] = Arr[cur1] ;
        cur1++;
 
    }
    delete[]Arr;
    Arr = A;
 
    Row = cur2;
    
}
 
int main() {
    srand(time(NULL));
 
 
    for (unsigned z = 0; z<3; z++) {
        bool f = false;
        while (!f) {
            f = false;
            int Row(0);
            int *Arr = NULL;
            Row = rand() % 20 + 3;  //Можно указывать число элементов в массиве.
 
            create_arr(Arr, Row); //Выделение памяти
            fill_rand_arr(Arr, Row); //Заполнение
            print_arr(Arr, Row); //Вывод на жкран
 
                                 /*Тут задача*/
            f = (is_sorted(Arr, Row)); //Проверяем упорядоченность
            if (!f) { //Если массив не отсортирован, то создавайте новый массив
                arr_transform(Arr, Row);  //Преобразование согласно задаче.
                cout << "Array transformed: \n";
                print_arr(Arr, Row);
                cout << "\n\n=============\n\n";
            }
            else {
                cout << "Array is ordered\n";
            }
            /**************/
            destroy_arr(Arr, Row);
            delete[]Arr;
 
        }
        cout << "Press Enter\n";
        cin.get();
    }
 
}
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.10.2015, 18:46
Лучший ответ Сообщение было отмечено Andrey1997 как решение

Решение

Andrey1997, вот работающий вариант:
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
#include <algorithm>
 
typedef int Item;
typedef Item * Iter;
 
const int STEP = 10;
 
void fill_range_rand(Iter beg, Iter end, Item fromNum, Item toNum);
void show_sequence(Iter beg, Iter end);
Iter remove_elements_with_step(Iter beg, Iter end, int step);
 
int main()
{
    std::cout << "Please enter the size of the array: ";
    int arrSize;
    std::cin >> arrSize;
 
    Item * arr = new Item[arrSize];
 
    Iter arr_beg = arr;
    Iter arr_end = arr + arrSize;
 
    fill_range_rand(arr_beg, arr_end, 10, 99);
 
    bool issorted = std::is_sorted(arr_beg, arr_end);
 
    show_sequence(arr_beg, arr_end);
 
    if (issorted)
        std::cout << "\nThe array is ordered.\n";
 
    else
        std::cout << "\nThe array is not ordered.\n";
 
    arr_end = remove_elements_with_step(arr_beg, arr_end, 4);
 
    show_sequence(arr_beg, arr_end);
 
    delete [] arr;
 
    return 0;
}
 
void fill_range_rand(Iter beg, Iter end, Item fromNum, Item toNum)
{
    Sleep(800);
    srand(time(0));
    for ( ; beg != end; ++beg)
        *beg = fromNum + rand()%(toNum - fromNum);
}
 
void show_sequence(Iter beg, Iter end)
{
    char delim;
    for (int i = 1; beg != end; ++beg, ++i)
    {
        if (i%STEP)
            delim = ' ';
        else
            delim = '\n';
        std::cout << *beg << delim;
    }
}
 
Iter remove_elements_with_step(Iter beg, Iter end, int step)
{
    int arrSize = end - beg;
    int i = 0;
    for (int j = 0; j < arrSize; ++j, ++i)
    {
        *(beg + i) = *(beg + j);
        if (!((j+1)%step))
            --i;
    }
 
    int counter = 0;
 
    while(i < arrSize)
    {
        ++counter;
        ++i;
    }
 
    arrSize -= counter;
    Item * tmp = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        tmp[j] = beg[j];
    }
    delete [] beg;
 
    beg = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        beg[j] = tmp[j];
    }
    delete [] tmp;
 
    return beg + arrSize;
}
1
22.10.2015, 18:51

Не по теме:

gru74ik, нет. у Вас какой-то косяк.В g++ нормально, как и у меня, а в VS баг проявляется сразу.

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.10.2015, 18:59
Andrey1997, или, для наглядности, можете вот такой вариант преподу показать:
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
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
#include <algorithm>
 
typedef int Item;
typedef Item * Iter;
 
const int STEP = 10;
 
void fill_range_rand(Iter beg, Iter end, Item fromNum, Item toNum);
void fill_range_in_acs_order(Iter beg, Iter end, Item fromNum = 1);
void show_sequence(Iter beg, Iter end);
Iter remove_elements_with_step(Iter beg, Iter end, int step);
 
int main()
{
    std::cout << "Please enter the size of the array: ";
    int arrSize;
    std::cin >> arrSize;
 
    Item * arr = new Item[arrSize];
 
    Iter arr_beg = arr;
    Iter arr_end = arr + arrSize;
 
    //fill_range_rand(arr_beg, arr_end, 10, 99);
    fill_range_in_acs_order(arr_beg, arr_end);
 
    bool issorted = std::is_sorted(arr_beg, arr_end);
 
    show_sequence(arr_beg, arr_end);
 
    if (issorted)
        std::cout << "\nThe array is ordered.\n";
 
    else
        std::cout << "\nThe array is not ordered.\n";
 
    arr_end = remove_elements_with_step(arr_beg, arr_end, 4);
 
    show_sequence(arr_beg, arr_end);
 
    delete [] arr;
 
    return 0;
}
 
void fill_range_rand(Iter beg, Iter end, Item fromNum, Item toNum)
{
    Sleep(800);
    srand(time(0));
    for ( ; beg != end; ++beg)
        *beg = fromNum + rand()%(toNum - fromNum);
}
 
void fill_range_in_acs_order(Iter beg, Iter end, Item fromNum)
{
    for ( ; beg != end; ++beg)
        *beg = fromNum++;
}
void show_sequence(Iter beg, Iter end)
{
    char delim;
    for (int i = 1; beg != end; ++beg, ++i)
    {
        if (i%STEP)
            delim = '\t';
        else
            delim = '\n';
        std::cout << *beg << delim;
    }
}
 
Iter remove_elements_with_step(Iter beg, Iter end, int step)
{
    int arrSize = end - beg;
    int i = 0;
    for (int j = 0; j < arrSize; ++j, ++i)
    {
        *(beg + i) = *(beg + j);
        if (!((j+1)%step))
            --i;
    }
 
    int counter = 0;
 
    while(i < arrSize)
    {
        ++counter;
        ++i;
    }
 
    arrSize -= counter;
    Item * tmp = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        tmp[j] = beg[j];
    }
    delete [] beg;
 
    beg = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        beg[j] = tmp[j];
    }
    delete [] tmp;
 
    return beg + arrSize;
}
Добавлено через 54 секунды
Цитата Сообщение от daslex Посмотреть сообщение
gru74ik, нет. у Вас какой-то косяк.В g++ нормально, как и у меня, а в VS баг проявляется сразу.
daslex, я хз, у меня VS нету. Только MinGW и Clang. Оба два нормально этот код кушают.

Добавлено через 1 минуту
Цитата Сообщение от daslex Посмотреть сообщение
а в VS баг проявляется сразу
А в чём проявляется баг?
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
22.10.2015, 19:05
Вот он скрин.
Я только system("PAUSE") добавлял. На это понятны причины должны быть. Остальное не трогал.
Миниатюры
Оставить без изменения последовательность, если она упорядочена  
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
22.10.2015, 19:10
У меня мой первый код тоже оба норм кушают и безошибочно выполняют) Но он неправильно писан, пришлось переписывать.
Можно и без студии, например на IdeOne скомпилировать, выдаст ошибку типа такой.
*** Error in `./prog': double free or corruption (fasttop): 0x08d1aa10 ***
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.10.2015, 19:11
daslex, ну не знаю. Охоты что-то ещё делать с этим кодом нет. И так всё вместо ТС сделал, хотя изначально этого не планировал.
0
22.10.2015, 19:13

Не по теме:

Никто не заставляет. Я решил, что целесообразно показать то, что не все так гладко, как поначалу кажется.

0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
22.10.2015, 19:24
daslex, я думаю, возможно проблема в 45 строке. Он пытается освободить память со старым значением arrSize (например, 100), в то время как к концу программы размер массива уже меньше (например, 75) - в функции мы его изменили. Ну да и боги с ним. Мне уже лениво этой чепухой заниматься.

Добавлено через 7 минут
Andrey1997, а вообще, имхо, такие вещи надо делать или с помощью STL, или свой класс "Массив" писать.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
22.10.2015, 19:35
gru74ik, а зачем вам эта часть кода?
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
    int counter = 0;
 
    while(i < arrSize)
    {
        ++counter;
        ++i;
    }
 
    arrSize -= counter;
    Item * tmp = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        tmp[j] = beg[j];
    }
    delete [] beg;
 
    beg = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
    {
        beg[j] = tmp[j];
    }
    delete [] tmp;
 
    return beg + arrSize;
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
23.10.2015, 08:21
S_el, вот что я делаю в этом куске кода:
  1. копирую нужную часть исходного массива (назовём его, скажем src_arr) во временный массив (tmp_arr)
  2. освобождаю память src_arr
  3. выделяю для src_arr меньший блок памяти (такого же размера, как у tmp_arr)
  4. копирую значения из tmp_arr в новый src_arr
  5. возвращаю из функции указатель на конец нового src_arr

Я там, конечно, наговнокодил маленько. Проще было так:
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
Iter remove_elements_with_step(Iter beg, Iter end, int step)
{
    int arrSize = end - beg;
    
    for (int i = 0, j = 0; j < arrSize; ++j, ++i)
    {
        *(beg + i) = *(beg + j);
        if (!((j+1)%step))
            --i;
    }
    
    arrSize -= arrSize/step;
    
    Item * tmp = new Item[arrSize];
    
    for (int j = 0; j < arrSize; ++j)
        tmp[j] = beg[j];
        
    delete [] beg;
    
    beg = new Item[arrSize];
    
    for (int j = 0; j < arrSize; ++j)
        beg[j] = tmp[j];
        
    delete [] tmp;
    
    return beg + arrSize;
}
Добавлено через 50 секунд
Цитата Сообщение от S_el Посмотреть сообщение
а зачем вам эта часть кода?
S_el, а как сделать короче и красивее?
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
23.10.2015, 11:25
Цитата Сообщение от gru74ik Посмотреть сообщение
а как сделать короче и красивее?
Я бы вообще убрал освобождение и перераспределение памяти для внешней функции. За это должна отвечать вызывающая сторона.
Т.е. сразу после цикла:
C++
1
return beg + i;
Т.к. все эти указатели - потенциальная ошибка. Вот вы не можете сходу определить почему на VS программа ведет себя не так.

Цитата Сообщение от gru74ik Посмотреть сообщение
вот что я делаю в этом куске кода:
а на самом деле вы делаете не это.
Выведите адреса указателей и убедитесь. Хотите изменить значение указателя - передавайте ссылку(или указатель) на него.
Т.е. вашу функцию надо переписать так:
C++
1
Iter remove_elements_with_step(Iter &beg, Iter end, int step);
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
Iter remove_elements_with_step(Iter &beg, Iter end, int step)
{
    int arrSize = end - beg;
    int i = 0;
    for (int j = 0; j < arrSize; ++j, ++i)
    {
        *(beg + i) = *(beg + j);
        if (!((j+1)%step))
            --i;
    }
 
    arrSize = i;
 
    Item * tmp = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
        tmp[j] = beg[j];
 
    delete [] beg;
 
    beg = new Item[arrSize];
 
    for (int j = 0; j < arrSize; ++j)
        beg[j] = tmp[j];
 
    delete [] tmp;
 
    return beg + arrSize;
 
}
и освобождать память,уже по другому указателю:
C++
1
delete [] arr_beg;



P.S. А для красоты лучше использовать STL.
2
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
23.10.2015, 12:33
Для gru74ik
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
const int STEP = 10;
 
void fill_range_rand(const int*,const int*, const int,const int);
void fill_range_in_acs_order(int*, int*, int = 1);
void show_sequence(const int*, const int*);
void remove_elements_with_step(int* &, int* &, const int = 4);  //<--- Ссылки на указатели, чтобы менять не копии
 
 
int main()
{
    std::cout << "Please enter the size of the array: ";
    int arrSize;
    std::cin >> arrSize;
 
    int * arr = new int[arrSize];
 
    int* arr_beg = arr;
    int* arr_end = arr + arrSize;
 
    //fill_range_rand(arr_beg, arr_end, 10, 99);
    fill_range_in_acs_order(arr, arr + arrSize);
    show_sequence(arr_beg, arr_end);
    remove_elements_with_step(arr_beg, arr_end);
    show_sequence(arr_beg, arr_end);
 
    system("PAUSE");
 
 
    return 0;
}
 
void fill_range_rand(int* beg, int* end, int fromNum, int toNum)
{
    srand(time(0));
    for (; beg != end; ++beg)
        *beg = fromNum + rand() % (toNum - fromNum);
}
 
void fill_range_in_acs_order(int* beg, int* end, int fromNum) {
    for (; beg != end; ++beg)
        *beg = fromNum++;
}
 
void show_sequence(const int* beg, const int* end)
{
    char delim;
    for (int i = 1; beg != end; ++beg, ++i)
    {
        if (i%STEP)
            delim = '\t';
        else
            delim = '\n';
        std::cout << *beg << delim;
    }
    std::cout << "\n\n";
}
 
void  remove_elements_with_step(int* &beg, int* &end, const int step) {
    int arrSize = end - beg;
    int count = arrSize - arrSize / step ;  //<--- Сколько оставить можно посчитать.
 
    int *temp = new int[count];
    int pos = 0;
 
    for (int i = 0; i <= arrSize; ++i)
    {
        if (i && i%4)
        temp[pos++] = i;
    }
 
    beg = temp;  //<---- Изменить начало
    end = temp + pos; //<--- И изменить хвост
      //А-то можно пройтись от нового начала до старого хвоста.
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2015, 12:33

Если введенный список упорядочен по возрастанию, то оставить его без изменения
Построить линейный список из нескольких динамических переменных, содержащих вводимые целые числа. Если введенный список упорядочен по...

Если эти числа равны, заменить их на 0, если нет - меньшое заменить большим, а большое оставить без изменения
Дано 2 целых числа, каждое из низ не больше 2*10^9 по модулю. Если эти числа равны, заменить их на 0, если нет - меньшое заменить большим,...

Если в тексте нет символа +, то оставить текст без изменения, иначе каждую из цифр, предшествующую первому вхождению символа +, заменить символом -
Дан текст. Если в тексте нет символа +, то оставить текст без изменения, иначе каждую из цифр, предшествующую первому вхождению символа +,...

Если заданная последовательность не упорядочена по убыванию, расположить её элементы в обратном порядке
Используя динамический массив надо Дана последовательность N действительных чисел. Если эта последовательность упорядочена по...

Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное оставить без изменения
Дан массив С, состоящий из N элементов (N &lt;10). Поменять местами первый элемент массива с максимальным, другой с минимальным, остальное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru