QUESTION:
Find the next greater element for each element in given array.
input: array size=9;
array[]={6, 3, 9, 10, 8, 2, 1, 15, 7};
output: {7, 5, 10, 15, 9, 3, 2, _, 8}
CODE:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,b[100],c[100];
int i,j,p,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
c[i]=b[i];
}
for(i=0;i<n;i++)
{
p=i;
for(j=i;j<n;j++)
{
if(c[p]>c[j])
p=j;
}
if(p!=i)
{
temp=c[i];
c[i]=c[p];
c[p]=temp;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(b[i]==c[j] && j<(n-1))
{
printf("%d ",c[j+1]);
break;
}
else if(b[i]==c[j] && j==(n-1))
printf("_ ");
}
}
}
Comments
Post a Comment