I'm trying to make a function to insert a few integers into a sorted vector and display the integers in decreasing order. Actually is from my college tutorial question. Not that i don't want to ask my lecturer but i'm trying to learn myself how to solve the problem and the question stated not to make any changes in the main function.Below is the code.

#include <iostream>
#include <vector>

using namespace std;

void insertInDecreasingOrder(vector<int>& v, int n)
    // My code here
	for(int i = n; i >= 0; i--)

//Do not change the main function
int main()
    vector<int> v;

    int numOfElements = 0;
    cout << "Enter number of elements: ";
    cin >> numOfElements;

    int n = 0;
    cout << "Enter integers: ";
    for(int i=0; i<numOfElements; i++)
        cin >> n;
        insertInDecreasingOrder(v, n);

    cout << "Decreasing order: " << endl;
    for(int i=0; i<v.size(); i++)
        cout << v[i] << " ";
    cout << endl;

    return 0;

My question is how to make my program to able to display the series of integer in decreasing order like the sample output below.

Sample output :
Enter number of elements: 4
Enter integers: 5 205 25 75
Decreasing order:
205 200 100 75 50 25 25 10 5

6 Years
Discussion Span
Last Post by Narue

By the look of main(), insertInDecreasingOrder() is meant to insert a single value into it's sorted position. So there are two steps:

  1. Find the sorted position of the value
  2. Insert the value

Since the vector is assumed to be sorted coming into the function, you can just search from the beginning until v[i] is less than n ; that's your sorted position. Then insert n there and you're done.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.