#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr;
srand(time(0));
for (int i = 0; i < 10; ++i) {
arr.push_back(rand() % 101);
cout << arr[i] << " ";
}
cout << endl << "Sorted: ";
for (int j = 0; j < 100; ++j) {
for (int i = 0; i < arr.size()-1; ++i) {
if (i < 4) {
if (arr[i] > arr[i + 1]) {
swap(arr[i], arr[i + 1]);
}
}
else {
if (arr[i] < arr[i + 1]) {
swap(arr[i], arr[i + 1]);
}
}
}
}
for (int i = 0; i < 10; ++i) {
if (i == 5) {
cout << "/// ";
}
cout << arr[i] << " ";
}
}
q1 - указатель. В начале программы указывает на второй элемент последовательности
Программа говорит, что если указатель q1 указывает на единицу, то надо ее исправить на единицу и сместиться вправо... т.е. указатель будет двигаться вправо до тех пор, пока не встретит ноль.
Таким образом в конце выполнения первого правила указатель q1 сместится в конец последовательности (до нуля)
Далее, если указатель q1 показывает на ноль, то меняем ноль на единицу, меняем указатель q1 на q2 и сдвигаемся влево.
После выполнения второго правила получаем последовательность 0111111 и указатель q2 на предпоследнюю единицу.
Третьим правилом q2 - сдвигается влево до достижения нуля
После его выполнения получаем последовательность 0111111 и указатель q2 на первый ноль
Четвертое правило заменяет указатель q2 на q0 и сдвигается вправо
Таким образом получаем в конце программы последовательность 0111111 и указатель q0 на первую единицу.
Объяснение:
Поделитесь своими знаниями, ответьте на вопрос:
Какое значение выведется после выполнения программы Заранее
1010
Объяснение:
(s < 100) да
(s mod 10 = 3) нет
writeln(1010)