Есть следующее консольное приложение
// Подключение заголовочного файла для работы с текстом
#include <iostream>
// Подключение заголовочного файла для переключения консоли на
//русский язык
#include <clocale>
// Подключение заголовочного файла для создания объекта класса vector
#include <vector>
//Использование пространства имен std
using namespace std;
// Объявление главной функции
int main(void){
// Переключение консоли на русский язык
char *locale = setlocale(LC_ALL, "");
cout << "Массив А состоит из n целых чисел." << endl
<< "Программа выполняет сортировку массива А по возрастанию."
<< endl
<< "Введите n..." << endl;
// Объявление целочисленной переменной n
int n;
//Запись значения в переменную
cin >> n;
//Объявление переменной для хранения индекса элемента
int k;
/* Объявление динамического массива на n целых чисел (с помощью объекта
класса vector) */
vector <int> A (n);
// Просьба заполнить массив А целыми числами
cout << "Заполните массив А целыми числами" << endl;
// Заполнение массива с клавиатуры с помощью цикла for
for (int i = 0; i < n; i++) {
/* Присваивание переменной k значения i+1 (i — целочисленная
переменная со значениями от 0 до n (индекс элемента массива).
Добавление к i единицы т.к. индексация элементов массива начинается с
0.*/
k = (i+1);
// Вывод сообщения с просьбой ввести элемент массива
cout << k << " элемент массива =";
// Запись значения, введенного с клавиатуры, в элемент массива с //
индексом i
cin >> A[i];
}
// Вывод сообщений о действиях программы
cout << "Сортировка массива выбором по возрастанию" << endl
<< endl;
cout << "Вывод массива до сортировки" << endl;
// Цикл для вывода неотсортированного массива в консоль
for (int i = 0; i < n; i++) {
cout << A[i] << ' ';
}
// пропуск строки.
cout << endl << endl;
// Цикл для перебора элементов массива.
for (int i = 0; i < n-1; i++) {
// Объявление переменной для хранения индекса минимального
// элемента. Присвоение этой переменной значения i.
int mindex = i;
// Объявление переменой для временного хранения значения
// элемента массива с индексом i.
int tmp = 0;
// Цикл для сравнения значений элементов массива с
// индексами i и j (i+1).
for (int j=i+1; j < n; j++) {
// Проверка условия
if (A[j] < A[mindex]) {
// Присвоение переменной mindex значения // переменной j.
mindex = j;
}
}
// Если значение переменной i (индекс текущего элемента
//массива) не равно значению переменной mindex, элементы с
//соответствующими индексами меняются местами.
if (i != mindex) {
tmp = A[i];
A[i] = A[mindex];
A[mindex] = tmp;
}
}
// Вывод сообщения в консоль.
cout << "Вывод массива после сортировки" << endl;
// Цикл для вывода элементов массива после сортировки.
for (int i = 0; i < n; i++) {
cout << A[i] << ' ';
}
// Завершение работы программы.
return 0;
}
При компиляции и запуске exe-файла через командную строку, оно работает корректно, но при запуске скомпилированного exe-файла с помощью мыши, программа доходит до последнего элемента массива, а после ввода этого элемента, exe-файл закрывается. В чем может быть проблема, и как мне сделать exe рабочим? Помогите разобраться, спасибо.