In this program, we are perusing unbounded numbers and afterwards masterminding them in the climbing request.

Here vast methods, the program should peruse numbers until a specific number is entered to end the understanding procedure.

For our situation we are utilizing – 1 to stop the understanding procedure. As we as of now don’t have the foggiest idea what number of numbers will be entered by the client so we are utilizing

the concept of dynamic memory allotment to dispense memory for a number at the run time. I have utilized ordering with

a pointer to make the program progressively coherent and straightforward. You can remark beneath in the

event that you discover any trouble in understanding the program.

**C Program**

```
#include<stdio.h>
#include<stdlib.h>
void main()
{
int *p,*q,i=1,j,k,temp; //q for storing address of 1st number
printf(" Enter Numbers(-1 to stop reading):n ");
p=(int*)malloc(sizeof(int));
scanf("%d",&p[0]);
while(p[i-1]!=-1) //read until -1 is entered
{
i++;
p=(int*)realloc(p,sizeof(int)*i);
q=p;
scanf("%d",&p[i-1]);
}
p=q;
//sorting numbers using bubble sort
for(j=1;j<i;++j)
{
for(k=0;k<i-j-1;++k)
{
if(p[k]>p[k+1])
{
temp=p[k];
p[k]=p[k+1];
p[k+1]=temp;
}
}
}
printf("n");
for(j=0;j<i-1;++j)
{
printf(" %d",p[j]);
}
}
```

**C++ Program**

```
#include<iostream.h>
#include<stdlib.h>
void main()
{
int *p,*q,i=1,j,k,temp; //q for storing address of 1st number
cout<<" Enter Numbers(-1 to stop reading):n ";
p=(int*)malloc(sizeof(int));
cin>>p[0];
while(p[i-1]!=-1) //read until -1 is entered
{
i++;
p=(int*)realloc(p,sizeof(int)*i);
q=p;
cin>>p[i-1];
}
p=q;
//sorting numbers using bubble sort
for(j=1;j<i;++j)
{
for(k=0;k<i-j-1;++k)
{
if(p[k]>p[k+1])
{
temp=p[k];
p[k]=p[k+1];
p[k+1]=temp;
}
}
}
cout<<"n";
for(j=0;j<i-1;++j)
{
cout<<" "<<p[j];
}
}
```

**Output**