Arrays

Menu Driven Program For All Operations

#include <stdio.h>
#include <iostream>
#include <limits.h>
#include <stdlib.h>
using namespace std;

void insert(int *ar,int*n);
void deletef(int *ar,int*n);
void bubble_sort(int *ar,int*n);
void display(int *ar,int*n);
void avg(int *ar,int*n);
void max_min(int *ar,int*n);
void max2_min2(int *ar,int*n);
void disp_odd(int *ar,int*n);
void disp_even(int *ar,int*n);

int main(void)
{
    int n=0,ar[1000],i=0,c=0;
    cout<<"Enter size of array(max. 999) : ";
    cin>>n;
    cout<<"\nEnter array elements : \n";
    for(i=0;i<n;i++)
    {
        cin>>ar[i];
    }
    while(true)
    {
        cout<<"\n\nPress 1 to enter an element to a particular location";
        cout<<"\nPress 2 to delete an element";
        cout<<"\nPress 3 for sorting the array(Bubble Sort)";
        cout<<"\nPress 4 to display the array";
        cout<<"\nPress 5 to show the average of the array";
        cout<<"\nPress 6 to show the maximum and minimum element of the array";
        cout<<"\nPress 7 to to show the second maximum and second minimum element of the array";
        cout<<"\nPress 8 to show the odd index elements";
        cout<<"\nPress 9 to show the even index elements";
        cout<<"\nPress 0 to exit : ";
        cin>>c;
        cout<<"\n";
        switch(c)
        {
            case 0:
                    exit(0);
            case 1: insert(ar,&n);
                    break;
            case 2: deletef(ar,&n);
                    break;
            case 3: bubble_sort(ar,&n);
                    break;
            case 4: display(ar,&n);
                    break;
            case 5: avg(ar,&n);
                    break;
            case 6: max_min(ar,&n);
                    break;
            case 7: max2_min2(ar,&n);
                    break;
            case 8: disp_odd(ar,&n);
                    break;
            case 9: disp_even(ar,&n);
                    break;
            default:cout<<"\n****Wrong input****";
                    cout<<"\n    Enter again\n";
        }
    }
    return 0;
}

void insert(int *ar,int*n)
{
    int i=0,ins=0,loc=0;
    cout<<"\nEnter element to be inserted : ";
    cin>>ins;
    cout<<"\nEnter index(indexing starts from 0) : ";
    cin>>loc;
    for(i=(*n);i>=loc;i--)
    {
        ar[i+1]=ar[i];
    }
    ar[loc]=ins;
    *n=(*n)+1;
    display(ar,n);
}

void deletef(int *ar,int*n)
{
    int i=0,del=0,deli=0;
    cout<<"\nEnter element to be deleted : ";
    cin>>del;
    for(i=0;i<(*n);i++)
    {
        if(ar[i]==del)
            deli=i;
    }
    for(i=deli;i<(*n);i++)
    {
        ar[i]=ar[i+1];
    }
    *n=*n-1;
    display(ar,n);
}

void bubble_sort(int *ar,int*n)
{
    int i=0,j=0,temp=0;
    for(i=0;i<(*n)-1;i++)
    {
        for(j=0;j<(*n)-i-1;j++)
        {
            if(ar[j]>ar[j+1])
            {
                temp=ar[j];
                ar[j]=ar[j+1];
                ar[j+1]=temp;
            }
        }
    }
    cout<<"\nSorted array is :\n";
    display(ar,n);
}

void display(int *ar,int*n)
{
    int i=0;
    cout<<"\nArray is : ";
    for(i=0;i<(*n);i++)
    {
        cout<<*(ar+i)<<" ";
    }
}

void avg(int *ar,int*n)
{
    int i=0,sum=0;
    for(i=0;i<(*n);i++)
    {
        sum=sum+ (*(ar+i));
    }
    cout<<"\nAvg is : "<<(float)sum/(*n);
}

void max_min(int *ar,int*n)
{
    int i=0,max=0,min=0;
    max=ar[i];
    min=ar[i];
    for(i=1;i<(*n);i++)
    {
        if(max<ar[i])
            max=ar[i];
        if(min>ar[i])
            min=ar[i];
    }
    cout<<"\nMaximum element is : "<<max;
    cout<<"\nMinimum element is : "<<min;
}

void max2_min2(int *ar,int*n)
{
    int i=0,maxi=0,mini=0,min2=0,max2=0;
    max2=INT_MIN;
    min2=INT_MAX;
    for(i=1;i<(*n);i++)
    {
        if(ar[maxi]<ar[i])
            maxi=i;
        if(ar[mini]>ar[i])
            mini=i;
    }
    for(i=0;i<(*n);i++)
    {
        if(max2<ar[i]&&i!=maxi)
            max2=ar[i];
        if(min2>ar[i]&&i!=mini)
            min2=ar[i];
    }
    cout<<"\nSecond Maximum element is : "<<max2;
    cout<<"\nSecond Minimum element is : "<<min2;
}

void disp_odd(int *ar,int*n)
{
    int i=0;
    cout<<"\nOdd index elements of array are : ";
    for(i=1;i<(*n);i+=2)
    {
        cout<<*(ar+i)<<" ";
    }
}

void disp_even(int *ar,int*n)
{
    int i=0;
    cout<<"\nEven index elements of array are : ";
    for(i=0;i<(*n);i+=2)
    {
        cout<<*(ar+i)<<" ";
    }
}

Leave a comment

Create a website or blog at WordPress.com

Up ↑

Design a site like this with WordPress.com
Get started