На данный вопрос уже ответили:
Есть следующее консольное приложение
// Подключение заголовочного файла для работы с текстом
#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 рабочим? Помогите разобраться, спасибо.
Добавьте system("pause");
либо _getch();
(conio.h) перед return 0;
что-бы программа сама не закрывалась, а ожидала нажатия любой клавиши.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Создаю указатель на экземпляр класса, вызываю конструктор, переменная "a" содержит число 2Вызываю деструктор (в котором это "a" должно стать...
Насколько я понимаю, они оба поддерживают наследование, оба могут содержать поля и функции, оба могут содержать конструктор и деструктор,...
Когда пытаюсь выполнить скрипт bimbampy выходит эта ошибка: