Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void input(int* p, int n)
- {
- cout << "Введите массив числа размерностью " << n<<endl;
- for (int i = 0; i < n; i++) cin >> p[i];
- }
- void output(int* p, int n)
- {
- cout << "Значения массива: " << endl;
- for (int i = 0; i < n; i++)
- {
- cout << p[i] << " ";
- }
- cout << endl;
- }
- int f41(int n, int A[]) { //Входные параметры:число элементов,массив чисел
- int k, s, i; //Локальные переменные
- for (k = 0, s = 0, i = 0; i < n && k == 0; i++) { //Определение переменной-защелки,сумма элементов равна 0, перебор элементов
- if (A[i] < 0) { k = 1; s -= A[i]; } //Если элемент меньше нуля,срабатывает переменная-защелка,следом выход из цикла
- s = s + A[i]; //Сложение элементов.
- }
- return s;
- }
- int f34(long long a)
- {
- int k, m;
- int n = a;
- for (k = 0, m = 1; m <= n; k++, m = m * 2)
- {
- }
- return k;
- }
- void f27(int A[], int n, int val)
- {
- int i, m;
- for (i = 0; i < n - 1 && val != 1; i++) {
- for (m = 2; val % m != 0; m++);
- val /= m; A[i] = m;
- }
- A[i] = 0;
- }
- int f56(int A[], int n)
- {
- int i, s;
- for (i = 1, s = 0; i < n; i++)
- if (A[i] > 0 && A[i - 1] < 0) s++;
- return s;
- }
- void f26(int n, int A[])
- {
- int j, i, s, m;
- for (j = 0, i = 0; i < n; i++) {
- for (s = 0, m = 2; m < A[i]; m++)
- if (A[i] % m == 0) { s = 1; break; }
- if (s == 0) {
- for (j = i; j < n - 1; j++) A[j] = A[j + 1];
- n--;
- i--;
- }
- }
- }
- int f31(int n, int c[]) {
- int i, j;
- for (i = 0; i < n - 1; i++)
- for (j = i + 1; j < n; j++)
- if (c[i] == c[j]) return i;
- }
- void f20(int B[], int n)
- {
- int i, k, j;
- for (i = 1, k = 0; i <= n; i++)
- if (B[i] > B[k]) k = i;
- for (j = k; j <= n - 1; j++) B[j] = B[j + 1];
- }
- int f36(int n, int c[])
- {
- int i, k1, k2, j;
- for (i = 0; i < n; i++) {
- for (j = k1 = k2 = 0; j < n; j++)
- if (c[i] != c[j])
- {
- if (c[i] < c[j]) k1++; else k2++;
- }
- if (k1 == k2) return i;
- }
- return -1;
- }
- void f46(int n, int A[])
- {
- int c, k, i;
- while (n != 0)
- {
- for (k = 0, i = 1; i < n; i++)
- if (A[i] < A[k]) k = i;
- c = A[k]; A[k] = A[n - 1]; A[n - 1] = c;
- n--;
- }
- }
- int f51(int A[], int n) {
- int i, s;
- for (i = 0, s = 0; i < n; i++)
- {
- if (A[i] > s) s = A[i];
- }
- return s;
- }
- int main()
- {
- while (1)
- {
- setlocale(LC_ALL, "rus");
- int a, v, d, j, k;
- cout << "Введите номер задачи" << endl << "Задача #26" << endl << "Задача #31" << endl << "Задача #36" << endl << "Задача #41" << endl << "Задача #46" << endl << "Задача #51" << endl << "Задача #56" << endl << "Задача #20" << endl << "Задача #27" << endl << "Задача #34" << endl;
- cin >> k;
- switch (k)
- {
- case 26:
- {
- cout << "Удаление из массива простых чисел" << endl;
- const int n = 5;
- int A[n];
- input(A, n);
- f26(n, A);
- output(A, n);
- break;
- }
- case 31:
- {
- cout << "Поиск индекса начала последовательности" << endl;
- const int n = 10;
- int A[n], g;
- input(A, n);
- g = f31(n, A);
- cout << "Кол-во " << g << endl;
- break;
- }
- case 20:
- {
- cout << "Удаление наибольшего элемента массива" << endl;
- const int n = 10;
- int B[n];
- input(B, n);
- f20(B, n);
- for (int i = 0; i < n - 1; i++)
- {
- if (B[i] == 0) break;
- else cout << B[i] << " ";
- }
- break;
- }
- case 27:
- {
- int val;
- cout << "Назначение -- поиск простых делителей числа и запись их в массив" << endl;
- cin >> val;
- const int n = 10;
- int A[n], i;
- for (i = 0; i < n; i++)
- {
- A[i] = 0;
- }
- f27(A, n, val);
- for (i = 0; i < n; i++)
- {
- if (A[i] == 0) break;
- cout << A[i] << " ";
- }
- cout << endl;
- break;
- }
- case 36:
- {
- cout << "Поиск первого элемента, после которого последовательность имеет одинаковую сумму длин возрастающих и убывающих последовательностей" << endl;
- const int n = 10;
- int A[n], i, s;
- input(A, n);
- s = f36(n, A);
- cout << "Результат" << s << endl;
- break;
- }
- case 41:
- {
- const int n = 5;
- int A[n], k;
- cout << "Сумма первых положительных элементов массива" << endl;
- input(A, n);
- k = f41(n, A);
- cout << "Значение -- " << k << endl;
- break;
- }
- case 46:
- {
- cout << "Сортировка массива А по убыванию (сортировка выбором)" << endl;
- const int n = 5;
- int A[n];
- input(A, n);
- f46(n, A);
- output(A, n);
- break;
- }
- case 34:
- {
- long long b;
- cout << "Назначение -- поиск степени двойки так, что 2 в этой степени больше введенного числа" << endl << "Введите число" << endl;
- cin >> b;
- j = f34(b);
- cout << "Результат:" << j << endl;
- break;
- }
- case 51:
- {
- const int n = 5;
- int A[n], s;
- cout << " Поиск максимального элемента в массиве среди положительных" << endl;
- input(A, n);
- s = f51(A, n);
- cout <<s<< endl;
- break;
- }
- case 56:
- {
- cout << "Подсчет количества смен знака с отрицательного на положительный в заданном массиве" << endl;
- int j;
- const int n = 10;
- int A[n];
- input(A, n);
- j = f56(A, n);
- cout << "Результат:" << j << endl;
- break;
- }
- default:
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement