0 / 0 / 0
Регистрация: 06.03.2015
Сообщений: 2
|
|
1 | |
В последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями06.03.2015, 21:19. Показов 925. Ответов 0
Метки нет (Все метки)
//Даны 2 одномерных массива. Во всех последовательностях отрицательных чисел поменять
//местами элементы с максимальным и минимальным значениями. #include <iostream> #include <string.h> #include <conio.h> #include <stdlib.h> using namespace std; int vvod(int p[], int &k, char im);// функция, которая вводит в массив int obrabotka(int p[], int k); // функция, которая исчет последовательности отрицательных чисел int perestanovka(int p[], int max, int min);// функция, которая исчет в последовательности наибольшие и наименьшие значения и меняет их местами int vivod(int p[], int k, char im);// функция которая выводит массив int main()// тут я думаю все и так понятно { setlocale(LC_ALL, "Russian"); int a[100], b[100], n, m; vvod(a, n, 'A'); vvod(b, m, 'B'); obrabotka(a, n); obrabotka(b, m); vivod(a, n, 'A'); vivod(b, m, 'B'); system("PAUSE"); // остановка выполнения программы (чтобы не закнылось окно) return 0; } int vvod(int p[], int&k, char im) { cout << "введите число элементов массива " << im << endl; cin >> k; for (int i = 0; i < k; i++) { cout << "введите " << im << "[" << i << "] = "; cin >> p[i]; }; return 1; } int obrabotka(int p[], int k) { int PozNach = 0, PozEnd = 0; bool f1 = false, f2 = false, f3 = true; // флажки для регулировки входа в условные операторы for (int i = 0; i < k; i++) { if (p[i] < 0 && f3 == true)// определение индекса первого элемента последовательности отрицательных чисел { PozNach = i; f1 = true;// для того чтобы зайти в оператов вызова функции обратотки f3 = false;// для того чтобы в этот условный оператор заходить только после одработки предыдущей последовательности } if (p[i] < 0 && p[i + 1] >= 0)// определение индекса полседнего элемента последовательности отрицательных чисел { PozEnd = i; f2 = true;// для того чтобы зайти в оператов вызова функции обратотки } if (f1 == true && f2 == true) // после того как последовательность определена вызывается функция обмена элементов { perestanovka(p, PozNach, PozEnd); f1 = false;// возвращение всех флажков в исходное состояние, чтобы программа не игногила операторы f2 = false; f3 = true; } } // необходимый кастыль если последний элемент массива отрицательный(предыдущий оператор его не определит если он последний) // первое условие проверяет последний элемент, а второе проверяет есть ли в последовательности еще элементы(те не оди ли он в конце отрицательный) if (p[k - 1] < 0 && p[k - 2]<0) { PozEnd = k; perestanovka(p, PozNach, PozEnd); } return 1; } int perestanovka(int p[], int i1, int i2)// функция по поиску и перестановке элементов { int max = p[i1], min = p[i1], pozmax = i1, pozmin = i1, t;// инициализация и присвоение начальных эелементов переменнным(индексам - первый индекс определенной последовательности в пред функции, значение максимального и минимального элеимента присваивается значение первого элемента последовательности for (int i = i1; i < i2 + 1; i++) { if (p[i] < min)//перебор всех элементов последовательности для поиска минимального элемента { min = p[i]; pozmin = i; } if (p[i]>max)//перебор всех элементов последовательности для поиска максимального элемента { max = p[i]; pozmax = i; } } //замена элементов с помощью вспомогательной переменной t t = p[pozmin]; p[pozmin] = p[pozmax]; p[pozmax] = t; return 1; } int vivod(int p[], int k, char im) //функция, которая выводи сформированный массив { cout << "сформированный массив " << im << endl; for (int i = 0; i < k; i++) cout << p[i] << "; "; cout << endl; return 1; }
0
|
06.03.2015, 21:19 | |
Ответы с готовыми решениями:
0
Во всех последовательностях чисел поменять местами элементы с максимальным и минимальным значениями Поменять местами элементы с максимальным и минимальным значениями Найти в строке элементы с максимальным и минимальным значениями и поменять их местами В заданном бинарном файле переставить местами элементы с максимальным и минимальным значениями |
06.03.2015, 21:19 | |
06.03.2015, 21:19 | |
Помогаю со студенческими работами здесь
1
Поменять местами строки с максимальным и минимальным элементами Поменять местами строку с максимальным и минимальным элементом матрицы Поменять местами строку матрицы с максимальным и минимальным элементом Поменять местами строки матрицы с минимальным и максимальным элементами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |