Другие языки программирования и технологии

Сортировка обменами. Массивы (корректировать код с++)

Здравствуйте!
Третий день мучаюсь с этой программой.
Очень хочу реализовать.

Но отсутствие опыта дает о себе знать.
Проверьте, пожалуйста код, и укажите на ошибки.
Также в самом коде закомментировал то, что совсем не понимаю. Жду ответов на эти вопросы.
Заранее премного благодарен.
Можно на почту.

#include "stdafx.h"
#include <algorithm>
#include <iostream>

using namespace std;

int main ()
{
int n, counter(0);
cin>>n;
int *arr = new int [n];

// как я понял, здесь нужно заполнить массив? как это сделать, и что должно получиться?

for (int j=0; j<n-1;>>a;
}
for (int i=0; i=n-j-1; i++) { // правильно ли здесь задано i=n-j-1? или нужно написать i<n?>>a[i+1]) {
swap(arr, arr[i+1]);
counter++;
}
}
}

cout << counter;

// как здесь можно вывести отсортированный массив?

delete [] arr;
return 0;
}

for (int j=0; j<n-1;>>a;
}

То, что хочу получить от программы:
Дана последовательность чисел а1, а2,...аn. Требуется переставить числа в порядке возрастания. Для этого сравниваются два соседних числа ai и ai+1. Если аi > ai+1, то делается перестановка. Так продолжается до тех пор, пока все элементы не станут расположены в порядке возрастания. Составить алгоритм сортировки, подсчитывая при этом количества перестановок.
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <algorithm>

using namespace std;

int main() {
    int n, counter = 0;
    cout << "n? ";
    cin >> n;
    int *arr = new int[n];

    cout << "array:\n";
    // элементам массива присвоим случайные числа
    srand(time(0));
    for (int c = 0; c < n; ++c) {
        arr[c] = rand() % 100;
        cout << arr[c] << ' ';
        // или введенные с клавиатуры
        // int v;
        // cin >> v;
        // a[c] = v;
    }

    // сама сортировка
    for (int k = 0; k < n - 1; ++k) {
        for (int c = 0; c < n - k; ++c) {
            if (arr[c] > arr[c + 1]) {
                swap(arr[c], arr[c + 1]);
                ++counter;
            }
        }
    }

    // как здесь можно вывести отсортированный массив?
    cout << "\n\nresult array:\n";
    for (int c = 0; c < n; ++c) cout << arr[c] << ' ';
   
    cout << "\n\nswap count: " << counter << '\n';

    delete [] arr;
}
Дмитрий Сергеевич
Дмитрий Сергеевич
69 289
Лучший ответ