#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