Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 10
1

Упорядочить заданный массив по возрастанию; найти максимальный по модулю элемент

12.06.2018, 13:34. Показов 1218. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести символ с клавиатуры.
1.Если символ есть «Х», то из массива А(К), заполненным случайным образом от 0 до 9 переписать эти числа в порядке возрастания в массив В(К).
2.Если символ есть «Z», то используя подпрограмму в известных матрицах Р(N,N) и Q(M,M) найти и отпечатать максимальные по модулю отрицательные элементы.
3.Если символ есть «T», то создать целочисленный файл. Преобразовать его так: записать +1 вместо максимального элемента и -1 вместо минимального. Преобразованный массив записать в другой файл. Оба файла вывести на экран.

Можете подсказать хотя бы с первой частью ?Заранее спасибо
Вот что сам пытался сделать :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std; // чтобы не записывать std::cin
 
                     //генерируем целый случайный массив
int main(void)
{
    void int_massiv();
 
    // определяем переменные
    int a[10];
    int i;
 
    srand(time(0)); // инициализация генерации случайных чисел
 
                    //генерируем целый случайный массив из 10 элементов от 0 до 9
    for (i = 0; i < 10; i++)
        a[i] = 0 + rand() % 9;
    for (i = 0; i < 10; i++)
        cout << a[i] << " "; // вывод результата на экране
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2018, 13:34
Ответы с готовыми решениями:

Упорядочить массив С(12), состоящий из элементов А, по возрастанию, найти минимальный по модулю элемент
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; const int m=3,n=4;...

Дана матрица А(3,4).Упорядочить массив С(12), состоящий из элементов А, по возрастанию, найти минимальный по модулю элемент.
Помогите решить задачу: Дана матрица А(3,4).Упорядочить массив С(12), состоящий из элементов А, по...

Найти минимальный и максимальный элемент массива. Упорядочить элементы по возрастанию. Определить входит ли в массив X
Дан массив чисел. Найти минимальный и максимальный элемент массива. Упорядочить элементы по...

Упорядочить матрицу по возрастанию элементов по строкам, найти минимальный по модулю элемент
Упорядочить матрицу А(3,4) по возрастанию элементов по строкам , найти минимальный по модулю...

1
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
20.09.2018, 23:39 2
Цитата Сообщение от Loni Посмотреть сообщение
из массива А(К), заполненным случайным образом от 0 до 9 переписать эти числа в порядке возрастания в массив В(К).

Loni
, здравствуйте! Вот несколько вариантов ответа на первый вопрос:

Вариант 1:

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
/*
Дата и время написания программы:
 
20.09.2018
21:48
 
Условие задачи:
 
Из массива a(n), заполненного случайным образом от 0 до 9, переписать элементы в порядке возрастания в массив b(n).
 
Алгоритм:
 
1. Определяем переменную целого типа для задания размера массивов a и b.
2. Определяем функцию srand(time(NULL)) для генерации случайных чисел из диапазона [0; 9].
3. Задаем начальный размер для двух массивов a и b.
4. Объявляем два одномерных динамических массива заданного размера.
5. Заполняем массив a[n] случайным образом с помощью формулы a + rand % (b - a + 1), где [a; b] - интервал случайного распределения
6. Сортируем массив a[n] методом Пузырька и, на каждом шаге, копируем элементы в массив b[n].
7. Выводим отсортированный масcив b[n].
8. Очищаем память, выделенную под оба массива.
 
Решение:
*/
 
#include <iostream>
#include <ctime>
#include <cstdlib>
 
    using namespace std;
    
int main() {
    int n; //Объявляем переменную целого типа (хранит число элементов для обоих массивов) 
    srand(time(NULL)); //Чтобы при каждом новом запуске программы генерировались новые случайные числа
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n; //Вводим размерность массива
    int* a = new int[n]; //Объявляем одномерный динамический массив a размером n
    int* b = new int[n]; //Объявляем одномерный динамический массив b размером n
    cout << "A random array:\n";
    for (int i = 0; i < n; i++) {
        a[i] = rand() % 10; //Генерируем случайные числа из диапазона [0; 9] //a + rand % (b - a + 1) 
        cout << a[i] << " "; //Выводим элементы сгенерированного массива
    }
    for (int i = 0; i < n; i++) {
        for (int j = n - 1; j > i; j--) {
            if (a[j] < a[j-1]) {
                swap(a[j], a[j-1]); //Упорядочиваем элементы массива a[n] методом Пузырька
            }
        }
        b[i] = a[i]; //Копируем элементы из a[n] в b[n]
    }
    cout << "\nOutput of the program:\n";
    for (int i = 0; i < n; i++) {
        cout << b[i] << " "; //Выводим элементы массива b[n], заполненного по возрастанию
    }
    delete [] a; //Высвобождаем память, выделенную под одномерный динамический массив
    delete [] b; //Высвобождаем память, выделенную под одномерный динамический массив
    system("pause"); //Функция задержки экрана консоли
    return 0; //Функция main() возвратила ноль при успешном выполнении программы (то есть, в коде выше ошибок не было)
}
Вариант 2:

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
/*
Дата и время написания программы:
 
20.09.2018
22:20
 
Условие задачи:
 
Из массива a(n), заполненного случайным образом от 0 до 9, переписать элементы в порядке возрастания в массив b(n).
 
Алгоритм:
 
1. Определяем переменную целого типа для задания размера массивов a и b.
2. Определяем функцию srand(time(NULL)) для генерации случайных чисел из диапазона [0; 9].
3. Задаем начальный размер для двух массивов a и b.
4. Объявляем два одномерных динамических массива заданного размера.
5. Заполняем массив a[n] случайным образом с помощью формулы a + rand % (b - a + 1), где [a; b] - интервал случайного распределения.
6. Сортируем массив a[n] c помощью функции sort().
7. Копируем элементы из отсортированного массива a[n] в b[n], используя функцию copy().
8. Выводим отсортированный масcив b[n].
9. Очищаем память, выделенную под оба массива.
 
Решение:
*/
 
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <algorithm>
 
    using namespace std;
    
int main() {
    int n; //Объявляем переменную целого типа (хранит число элементов для обоих массивов) 
    srand(time(NULL)); //Чтобы при каждом новом запуске программы генерировались новые случайные числа
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n; //Вводим размерность массива
    int* a = new int[n]; //Объявляем одномерный динамический массив a размером n
    int* b = new int[n]; //Объявляем одномерный динамический массив b размером n
    cout << "A random array:\n";
    for (int i = 0; i < n; i++) {
        a[i] = rand() % 10; //Генерируем случайные числа из диапазона [0; 9] //a + rand % (b - a + 1) 
        cout << a[i] << " "; //Выводим элементы сгенерированного массива
    }
    sort(a, a + n); //Сортируем массив a[n] по возрастанию используя STL
    copy(a, a + n, b); //Копируем элементы из массива a[n] в b[n] используя STL
    cout << "\nOutput of the program:\n";
    for (int i = 0; i < n; i++) {
        cout << b[i] << " "; //Выводим элементы массива b[n], заполненного по возрастанию
    }
    delete [] a; //Высвобождаем память, выделенную под одномерный динамический массив
    delete [] b; //Высвобождаем память, выделенную под одномерный динамический массив
    system("pause"); //Функция задержки экрана консоли
    return 0; //Функция main() возвратила ноль при успешном выполнении программы (то есть, в коде выше ошибок не было)
}
Вариант 3:

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
/*
Дата и время написания программы:
 
20.09.2018
22:42
 
Условие задачи:
 
Из массива a(n), заполненного случайным образом от 0 до 9, переписать элементы в порядке возрастания в массив b(n).
 
Алгоритм:
 
1. Определяем переменную целого типа для задания размера векторов a(n) и b(n).
2. Определяем функцию srand(time(NULL)) для генерации случайных чисел из диапазона [0; 9].
3. Задаем начальный размер для двух векторов a(n) и b(n).
4. Объявляем два вектора типа int заданного размера.
5. Заполняем вектор a(n) случайным образом с помощью функции generate() и лямбда-выражения.
6. Копируем элементы из вектора a(n) в b(n) с помощью функции assign().
7. Сортируем вектор b(n) с помощью функции sort() и лямбда-выражения.
8. Выводим содержимое вектора b(n) с помощью функции copy().
 
Решение:
*/
 
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <algorithm>
#include <iterator>
 
    using namespace std;
    
int main() {
    int n; //Объявляем переменную целого типа (хранит число элементов для обоих массивов) 
    srand(time(NULL)); //Чтобы при каждом новом запуске программы генерировались новые случайные числа
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n; //Вводим размерность массива
    vector<int> a(n);
    vector<int> b(n);
    generate(a.begin(), a.end(), []() { return rand() % 10; }); //Генерируем случайный вектор a(n)
    cout << "A random array:\n";
    copy(a.begin(), a.end(), ostream_iterator<int>(cout, " ")); //Выводим содержимое случайно сгенерированного вектора a(n)
    b.assign(a.begin(), a.end()); //Копируем элементы из вектора a(n) в b(n)
    sort(b.begin(), b.end(), [&](int lhs, int rhs) { return lhs < rhs; }); //Сортируем вектор b(n) 
    cout << "\nOutput of the program:\n";
    copy(b.begin(), b.end(), ostream_iterator<int>(cout, " ")); //Выводим содержимое искомого вектора b(n) через пробел
    system("pause"); //Функция задержки экрана консоли
    return 0; //Функция main() возвратила ноль при успешном выполнении программы (то есть, в коде выше ошибок не было)
}
Вариант 4:

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
/*
Дата и время написания программы:
 
20.09.2018
23:17
 
Условие задачи:
 
Из массива a(n), заполненного случайным образом от 0 до 9, переписать элементы в порядке возрастания в массив b(n).
 
Алгоритм:
 
1. Определяем переменную целого типа для задания размера массива a(n).
2. Определяем функцию srand(time(NULL)) для генерации случайных чисел из диапазона [0; 9].
3. Задаем начальный размер для массива a(n).
4. Объявляем одномерный динамический массив, а также очередь с приоритетом b.
5. Заполняем массив a[n] случайным образом и одновременно c этим помещаем элементы в очередь с приоритетом b.
6. Выводим содержимое очереди с приоритетом с помощью функций pop(), top(), empty() и цикла while().
7. Очищаем память, выделенную под исходный массив.
 
Решение:
*/
 
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <queue>
 
    using namespace std;
    
int main() {
    int n; //Объявляем переменную целого типа (хранит число элементов для обоих массивов) 
    srand(time(NULL)); //Чтобы при каждом новом запуске программы генерировались новые случайные числа
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n; //Вводим размерность массива
    int* a = new int[n]; //Объявляем одномерный динамический массив a размером n
    priority_queue<int, vector<int>, greater<int>> b; //Объявляем очередь с приоритетом (куча)
    cout << "A random array:\n";    
    for (int i = 0; i < n; i++) {
        a[i] = rand() % 10; //Генерируем случайные числа из диапазона [0; 9] //a + rand % (b - a + 1) 
        b.push(a[i]); //Добавляем элементы в очередь с приоритетом (сразу по возрастанию)
        cout << a[i] << " "; //Выводим элементы сгенерированного массива
    }
    cout << "\nOutput of the program:\n";
    while (!b.empty()) { //Пробегаем циклом по очереди с приоритетом b
        cout << b.top() << " "; //Выводим элементы отсортированного массива
        b.pop();
    }
    delete [] a; //Высвобождаем память, выделенную под одномерный динамический массив
    system("pause"); //Функция задержки экрана консоли
    return 0; //Функция main() возвратила ноль при успешном выполнении программы (то есть, в коде выше ошибок не было)
}
0
20.09.2018, 23:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2018, 23:39
Помогаю со студенческими работами здесь

В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы
В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы,...

В массиве Х (N) найти максимальный элемент массива и упорядочить по возрастанию все элементы
написать программу на языке С++. Задание: В массиве Х (N) найти максимальный элемент массива и...

Массив. Найти максимальный по модулю элемент
В одновымерном массиве найти: -максимальный по модулю элемент массива -сумму элементов массива,...

Массив: Найти максимальный по модулю элемент, а строку, которая содержит этот элемент, переслать в вектор
Создать двумерный массив i=3,j=4 формула вычисления элементов a=(sqr(i)*i)+4*(sqr(j)-15 ...

В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы. С кодом на С++, есть тема с
В массиве X(N) найти максимальный элемент массива и упорядочить по возрастанию все элементы

Дан двумерный массив. Заменить максимальный по модулю элемент на минимальный по модулю элемент
Дан двумерный массив. Заменить максимальный по модулю элемент на минимальный по модулю элемент.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru