Numbers in Ascending Order in C++

  • C/++/#
  • Thread starter mdnazmulh
  • Start date
  • #1
51
0
i have to write such a program that takes 10 integers from user and show them in ascending order.

My attempt was ---

#include<iostream.h>
#include<conio.h>

int main()
{
int a[10];

for(int i=0; i<10; i++) //this loop is used for getting the 10 integers from user
cin>>a;

...................... // here I'm stuck. I couldn't find how should i sort them. I can sort
// number using 'if..else if' statement which makes the program lengthy
// for this propblem.

getch();
return 0;
}


So plz help me if any one knows how to sort 10 integers so that it doesn't make the codes lengthy.
thanks in advance
 

Answers and Replies

  • #2
quadraphonics
Why not just use qsort? Or are you required to actually write the low-level sorting algorithm directly? If so, I'd look at the Wikipedia pages on qsort and heapsort for some ideas; they have pretty good explanations and psuedocode.
 
  • #3
Integral
Staff Emeritus
Science Advisor
Gold Member
7,201
56
A bubble sort is quick and easy to code. Simple go through your list swaping adjacent numbers if they are out of order. Repeat until there are no swaps.
 
  • #4
jim mcnamara
Mentor
4,106
2,607
If you are allowed to use the stl and the vector container, try sort().
 
  • #5
51
0
thanks to all replied...Actually I'm newbie in c++. I haven't studied qsort, heapsort or vector container..
swapping technique is suitable for my level...I used it in the for loop

for(int p=0; p<9; p++)
{
for(int i=0; i<9; i++)
{
if(a>a[i+1]) // comparison between two adjacent array elements
{
holder=a; // holder holds the value temporarily
a=a[i+1];
a[i+1]=holder;
}
}
}
 
  • #6
mgb_phys
Science Advisor
Homework Helper
7,774
13
Depends what sort of class this is !
If you are supposed to write the sort then bubble sort is easiest - justify your choice over a qsort by saying that the speed difference is small for only 10numbers !
If this is a real programming class then use.

vector<int>a;
for( ....
a.push_back( input )
}

sort(a.begin(),a.end());
 
  • #7
obviously it vl not show the output coz nobody written cout<<a;
line anywhere
i tried to write it at d end of all for loops bt it shows address of a integer
 
  • #8
rcgldr
Homework Helper
8,715
539
  • #9
760
69
mdnazmulh, do not use the header iostream.h. It is deprecated, and not part of standard C++.

Please use the following instead.

Code:
#include <iostream>
And unless you want to prefix standard library names with "std::" use the following.

Code:
using namespace std;
If you are allowed to use the stl and the vector container, try sort().
std::sort would work with arrays/pointers too.
 
  • #10
1
0
Code:
#include <iostream.h>
void main()
{
const int max=50; //sets the maximum size of the array
int num[max]; //the array can be initialized from here num={2,3,6,4,3,7,8,,4.....n};
int holder;
//if array is initialized then no need for this for loop
  for(int m=0; m<max; m++)
  {
  cout<<"Enter number "<<(m+1)<<" : ";
  cin>>num[m];
  }


  for(int p=0; p<(max-1); p++)
	{
	 for(int i=0; i<(max-1); i++)
	 {
		if(num[i]>num[i+1]) // comparison between two adjacent array elements
		{
		 holder=num[i]; // holder holds the value temporarily
		 num[i]=num[i+1];
		 num[i+1]=holder;
		}
	 }
  }
  //now to print the sorted array
  for(int j=0; j<max; j++)
  {
  cout<<" "<<num[j];        //This prints the array out in ascending order on the same line
                       //<<endl; could be placed at the end to print on different line
  }
}
 
Last edited by a moderator:
  • #11
1
0
#include <iostream.h>
#include<conio.h>


void main ( )
{
int arr[100] , size , hold ;
START :
cout << "\n Enter the size of the array ( not more than 100 ) : " ;
cin >> size ;
if ( size > 100 )
{
cout << "\n Size is more than 100 ... Please re enter .. " ;
getch ( ) ;
clrscr ( ) ;
goto START ;
}
cout << "\n Enter " << size << "elements ... \n" ;
for ( int i = 0 ; i < size ; i ++ )
cin >> arr;
for ( i = 0 ; i < (size-1) ; i++ )
{
for ( int j = i+1 ; j < size ; j++ )
{
if ( arr[j] < arr )
{
hold = arr[j] ;
arr[j] = arr ;
arr = hold;
}
}
}
cout << "\n The sorted array : \n ";
for ( i=0 ; i < size ; i++ )
cout << arr[size] << " ";
getch ( ) ;
}
 

Related Threads on Numbers in Ascending Order in C++

Replies
20
Views
1K
Top