Hello, I am in the process of creating a program that accepts random numbers, put them in an array and sort them using different
types of sorting algorithms. I then passed the array as an argument to the "BubbleSort" function, however, when I try to call
the array in the main() function, an error appeared saying "argument of type "int" is incompatible with parameter of type "int *"
Why did that appear? Did I overlook something in the program? It's not finished yet, but here it is:

    #include <iostream>
    using namespace std;

    void BubbleSort(int arr[], int n); 
    int main()

        int num, ch, i;
        int arr[999] = {};

        cout << "Enter number of nodes: ";
        cin >> num;

        for(i=0; i<num; i++)
            cout << "Enter node: ";
            cin >> arr[i];

        cout << "\nHere are the unsorted nodes: ";
        for(int i=0; i<num; i++)
            cout <<""<<arr[i]<<" ";

        cout << "\n\nChoices are:";
        cout << "\n[1] Bubble Sort"
             << "\n[2] Insertion Sort"
             << "\n[3] Selection Sort"
             << "\n[4] Exit"
             << "\nEnter choice: ";

        cin >> ch;

        case 1:
            cout << "\nBubble Sort" <<endl;
            BubbleSort(arr[i], num);
            cout << "\n"<<arr[i]<<" ";

        case 2:
            cout << "\nInsertion Sort" <<endl;

        case 3:
            cout << "\nSelection Sort" <<endl;

        case 4:

            cout << "\nInvalid entry, try again";
            goto choice;

        return 0;

        void BubbleSort(int arr[], int n) 
          bool swapped = true;
          int j = 0;
          int tmp;
          while (swapped) {
                swapped = false;
                for (int i = 0; i < n - j; i++) {
                      if (arr[i] > arr[i + 1]) {
                            tmp = arr[i];
                            arr[i] = arr[i + 1];
                            arr[i + 1] = tmp;
                            swapped = true;

Any help would be highly appreciated, I'll be glad if someone will enlighten me with this matter. Thanks! :)

4 Years
Discussion Span
Last Post by TheWind147

@line 40
pass the array like this:

BubbleSort(arr, num);

@line 41
are you trying to print the whole array? you could use a loop for that

Edited by zeroliken: added code tag


Hey Thank you so much! I used a for loop for printing the whole array after it has been sorted, just like you said. But what if I want to display or print
the passes that happened during the loop, do I need to create a separate function for that or just "cout" after every swap? :)


But what if I want to display or print the passes that happened during the loop

you could print out the variable you need to display before passing it to a function or doing something to it

other than that if you need something else entirely then could you post a sample code of what you need so I can understand it better


The output should be like this:

    Enter number of nodes: 4
    What are the unsorted nodes? 12 6 4 8 

    Choices are: 
    [1] Bubble Sort 
    [2] Insertion Sort 
    [3] Selection Sort 
    [4] Exit 
    Enter your choice: 1 

    Bubble Sort including passes: 
    12 6 4 8
    6 12 4 8
    6 4 12 8
    6 4 8 12
    4 6 8 12

Something like that? but anyway I was just wondering so you know :)

This question has already been answered. 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.