Programa controlado por menú en C++ para realizar varias operaciones básicas en la array

Requisito previo: declaración Switch en C/C++ , funciones en C/C++ , bucles en C y C++ , bucle do-while en C/C++ con ejemplos

Escriba un programa controlado por menú para realizar varias operaciones básicas en la array :

Acercarse:

  • Comprobar si un número es par o impar: Hay 2 formas de lograrlo:
    • Al hacer Bitwise AND de 1 y ese dígito, si el resultado es 1, entonces el número es impar, de lo contrario, es par.
    • Por su divisibilidad por 2. Se dice que un número es impar si no es divisible por 2, en caso contrario es par.
  • Encuentre la suma y divida la suma por el número total de elementos: al iterar a través de toda la array y agregarla a una suma variable. Dividiendo la suma por el total no. de elementos para hallar la media.
  • Encuentre el máximo y el mínimo en la array: Inicialice los valores de mínimo y máximo como mínimo y máximo de los dos primeros elementos respectivamente. A partir del 3, compare cada elemento con el máximo y el mínimo, y cambie el máximo y el mínimo en consecuencia. Si el elemento es más pequeño que el mínimo, cambie el mínimo. De lo contrario, si el elemento es mayor que el máximo, cambie el máximo. De lo contrario, ignore el elemento.
  • Elimine los duplicados de la array: ordene la array utilizando la función sort() incorporada. Cree una array auxiliar temp[] para almacenar elementos únicos. Recorra la array de entrada y copie uno por uno los elementos únicos de arr[] a temp[]. Además, realice un seguimiento del recuento de elementos únicos. Sea esta cuenta j. Copie j elementos de temp[] a arr[] y devuelva j
  • Imprima la array al revés: invierta una array o string

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to display all the menu in
// the current program
void menu()
{
    cout << "\n\t\tMENU :";
    cout << "\nPress 1 to print even "
         << "valued elements\n";
    cout << "Press 2 to print odd valued"
         << " elements\n";
    cout << "Press 3 to calculate sum "
         << "and average of elements in "
         << "the array\n";
    cout << "Press 4 to print maximum"
         << " and minimum element "
            "in the array\n";
    cout << "Press 5 to remove the "
         << "duplicacy in array \n";
    cout << "Press 6 to print array"
         << " in reverse\n";
    cout << "Press 7 to exit\n";
}
 
// Function to print even valued
// elements in the array arr[]
void even(int arr[], int len)
{
    cout << "Even numbers in the "
         << "array are - ";
    for (int i = 0; i < len; i++) {
        if (arr[i] % 2 == 0) {
            cout << arr[i] << "\t";
        }
    }
}
 
// Function to print odd valued
// elements in the array arr[]
void odd(int arr[], int len)
{
    cout << "Odd numbers in the "
         << "array are - ";
    for (int i = 0; i < len; i++) {
        if (arr[i] % 2 != 0) {
            cout << arr[i] << "\t";
        }
    }
}
 
// Function to print sum and the
// average of elements in array
void SumAverage(int arr[], int len)
{
    int sum = 0;
    for (int i = 0; i < len; i++) {
        sum += arr[i];
    }
    cout << "\n Sum     =" << sum;
    cout << "\n Average =" << sum / len;
}
 
// Function to print maximum and
// minimum elements in an array
void MaxMin(int arr[], int len)
{
    int max = arr[1], min = arr[0];
 
    // Traverse the array
    for (int i = 0; i < len; i++) {
 
        // Update the maximum
        if (arr[i] > max)
            max = arr[i];
 
        // Update the minimum
        if (arr[i] < min)
            min = arr[i];
    }
    cout << "Maximum = " << max
         << "\t";
    cout << "Minimum = " << min;
}
 
// Function to remove duplicate
// elements in an array
void RmDuplicacy(int arr[], int n)
{
    if (n == 0 || n == 1)
        cout << "No Duplicates";
 
    // sorting array using inbuilt
    // sort() function
    sort(arr, arr + n);
    int temp[n];
 
    // Start traversing elements
    int j = 0;
    for (int i = 0; i < n - 1; i++)
 
        // If current element is not
        // the same as the next element
        // then store the current element
        if (arr[i] != arr[i + 1])
            temp[j++] = arr[i];
 
    // Store the last element as whether
    // it is unique or repeated, it hasn't
    // stored previously
    temp[j++] = arr[n - 1];
 
    // Modify original array
    for (int i = 0; i < j; i++)
        arr[i] = temp[i];
 
    // j is now the size of the array
    // without duplicates
    for (int i = 0; i < j; i++) {
        cout << arr[i] << " ";
    }
}
 
// Function to print array
// in reverse order
void Reverse(int arr[], int len)
{
    cout << "\nArray in reverse"
         << " order:\n ";
    for (int i = len - 1; i >= 0; i--) {
        cout << arr[i] << "\t";
    }
}
 
// Driver Code
int main()
{
    int arr[100], i, num, choice;
    printf("Enter the size of "
           "an array :\n");
 
    cin >> num;
    printf("Enter the elements of "
           "the array :\n");
 
    for (i = 0; i < num; i++) {
        cin >> arr[i];
    }
 
    do {
        cout << "\n";
        menu();
        cout << "\nEnter your "
             << "choice:\n ";
        cin >> choice;
 
        switch (choice) {
        case 1:
            even(arr, num);
            break;
        case 2:
            odd(arr, num);
            break;
        case 3:
            SumAverage(arr, num);
            break;
        case 4:
            MaxMin(arr, num);
            break;
        case 5:
            RmDuplicacy(arr, num);
            break;
        case 6:
            Reverse(arr, num);
            break;
        case 7:
            exit(0);
            break;
        default:
            cout << "INVALID CHOICE :-(";
        }
 
    } while (choice != 7);
 
    return 0;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por jt9999709701 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *