Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> // библиотека ввода-вывода
- #include <cstdlib> //библиотека для random
- #include <ctime> //библиотека для time
- using namespace std;
- void summ(int, int *mass);
- void max(int, int *mass);
- void mirr(int, int *mass);
- int menuv(int, int *mass);
- int main(){
- int menu, z = 1;
- const int N = 10; // конcтанта длины массива
- int mass[N]; //создаём массив с длиной N
- srand(time(NULL)); //включаем генерацию чисел в реальном времени
- for (int i = 0; i<N; i++){
- mass[i] = 1+rand()%40; // массив заполняется случайными числами от 1 до 40
- cout << mass[i] << " "; //выводим массив
- }
- cout << "\n\n"; // пустые строки для красоты
- while(z!=0){
- z = menuv (N,mass);
- }
- return 0;
- }
- void max(int N, int *mass) {
- int max = 0, min = 41, numx, numn;
- for (int i = 0; i<N; i++) { // находим максимальное число в массиве
- if (mass[i]>max) {
- max = mass[i];
- numx = i;
- }
- if (mass[i]<min) { // находим минимальное число в массиве
- min = mass[i];
- numn = i;
- }
- }
- //потворный вывод массива
- for (int i = 0; i < N; i++) {
- cout << mass[i] << " ";
- }
- cout << "\n";
- cout << "\n" << "The maximum number in the array is " << max << ". On position " << numx+1 << endl; // выводим максимальное число в массиве
- cout << "The minimum number in the array is " << min << ". On position " << numn+1 << endl; // выводим минимально число в массиве
- }
- void summ(int N, int *mass) {
- // min и max - память для максимума и минимума, summ - сумма, numx и numn - память позиции
- int max = 0, min = 41, numx = 0, numn = 0, summ = 0;
- for (int i = 0; i<N; i++) { // находим максимальное число в массиве
- if (mass[i]>max) {
- max = mass[i];
- numx = i;
- }
- if (mass[i]<min) { // находим минимальное число в массиве
- min = mass[i];
- numn = i;
- }
- }
- // узнаём какое из чисел левее и находим сумму чисел между ними
- if (numx < numn) {
- for (int i = numx + 1; i<numn; i++) {
- summ += mass[i];
- }
- }
- else {
- for (int i = numn + 1; i<numx; i++) {
- summ += mass[i];
- }
- }
- //потворный вывод массива
- for (int i = 0; i < N; i++) {
- cout << mass[i] << " ";
- }
- cout << "\n";
- // выводим сумму
- cout << "\nThe maximum number on position " << numx + 1 << endl;
- cout << "The minimum number on position " << numn + 1 << endl;
- cout << "\nThe summ of the numbers between the max and minimum is equal to: " << summ << endl;
- }
- void mirr(int N, int *mass) {
- int l, r, x = N - 1, c = 0;
- //потворный вывод массива
- for (int i = 0; i < N; i++) {
- cout << mass[i] << " ";
- }
- cout << "\n\n";
- // попарно меняем местами левые числа с правыми
- while (c<x) {
- l = mass[c];
- r = mass[x];
- mass[c] = r;
- mass[x] = l;
- x--;
- c++;
- }
- // выводим перевёрнутый массив
- for (int i = 0; i<N; i++) {
- cout << mass[i] << " ";
- }
- cout << "\n";
- }
- int menuv(int N, int *mass) {
- int menu = 0;
- // выводим информацию о меню пользователю
- cout << "Select of menu item: \n";
- cout << " 1 - Found the maximum and minimum \n 2 - Find summ between max and min \n 3 - Mirror array \n 4 - Create an array again \n 5 - Exit\n";
- cout << ">>";
- cin >> menu;
- switch (menu) {
- case 1: system("cls"); max(N, mass); cout << "\n"; break; // нахождение максимума и минимума
- case 2: system("cls"); summ(N, mass); cout << "\n"; break; // нахождение суммы
- case 3: system("cls"); mirr(N, mass); cout << "\n"; break; // отзеркаливание массива
- case 4: system("cls"); main(); return 0; break; //пересоздание массива
- case 5: return 0; // выход
- default: cout << "Wrong number\n"; // включаем защиту от левых чисел
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement