Numbers in Ascending Order in C++

  • C/C++
  • Thread starter mdnazmulh
  • Start date
  • Tags
    C++ Numbers
In summary, the conversation discusses the need to write a program that takes 10 integers from the user and displays them in ascending order. The individual is unsure of how to sort the numbers efficiently and is seeking suggestions. Some possible solutions mentioned are using qsort, heapsort, or the vector container. The individual ultimately decides to use a swapping technique in a for loop to sort the numbers. A sample code is provided and suggestions are given to improve it, such as using std::sort or replacing the for loop with a vector array. The conversation also touches upon proper coding practices, such as avoiding the use of the deprecated iostream.h header and using the standard library namespace.
  • #1
mdnazmulh
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 please help me if anyone knows how to sort 10 integers so that it doesn't make the codes lengthy.
thanks in advance
 
Technology news on Phys.org
  • #2
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
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
If you are allowed to use the stl and the vector container, try sort().
 
  • #5
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
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
akhil12123 said:
cout<<a;
You'd need a loop and use cout<<a; .
 
  • #9
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;

jim mcnamara said:
If you are allowed to use the stl and the vector container, try sort().

std::sort would work with arrays/pointers too.
 
  • #10
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
#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 ( ) ;
}
 

1. What does it mean for numbers to be in ascending order?

Ascending order refers to a sequence of numbers where each number is larger than the number before it. This means that the numbers are arranged from smallest to largest.

2. How can I print numbers in ascending order in C++?

To print numbers in ascending order in C++, you can use a loop to iterate through the numbers and use an if statement to check if the current number is smaller than the next number. If it is, then you can swap the numbers. This process is repeated until all the numbers are in ascending order.

3. Can numbers in ascending order be negative?

Yes, numbers in ascending order can be negative. The order is determined by the magnitude of the numbers, not their sign. So, for example, the numbers -5, -3, -1, 1, 3 would be considered in ascending order.

4. How do I check if numbers are already in ascending order in C++?

You can check if numbers are already in ascending order in C++ by using a for loop to compare each number to the one before it. If at any point the current number is smaller than the previous one, then the numbers are not in ascending order. If the loop completes without any issues, then the numbers are in ascending order.

5. Can I use the sort function in C++ to put numbers in ascending order?

Yes, the sort function in C++ can be used to put numbers in ascending order. You can pass in a range of numbers and specify the ascending order as a third argument. The sort function will then rearrange the numbers in the specified order.

Similar threads

  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
20
Views
1K
  • Programming and Computer Science
Replies
12
Views
1K
  • Programming and Computer Science
Replies
1
Views
2K
  • Programming and Computer Science
Replies
17
Views
1K
  • Programming and Computer Science
Replies
30
Views
2K
  • Programming and Computer Science
2
Replies
39
Views
3K
  • Programming and Computer Science
Replies
6
Views
888
  • Programming and Computer Science
Replies
4
Views
3K
  • Programming and Computer Science
Replies
5
Views
2K
Back
Top