Решения К.Р. 2.1 и 2.2
#include <iostream>
using namespace std;
int main() {
// Выделяем память под массив из 7 элементов (тип short занимает 2 байта)
short* a = new short[7];
// --- ВВОД ДАННЫХ ---
for (short i = 0; i < 7; i++) {
cin >> a[i]; // Считываем числа с клавиатуры
}
// --- СОРТИРОВКА ---
// Внешний цикл: количество проходов
for (short i = 0; i < 7 - 1; i++) {
// Внутренний цикл: идем С КОНЦА (справа налево)
for (short j = 6; j > i; j--) {
// Если текущий элемент меньше предыдущего (нарушен порядок)
if (a[j] < a[j - 1]) {
// Меняем их местами (алгоритм "стакан")
short box = a[j]; // Сохраняем во временную переменную
a[j] = a[j - 1]; // Перезаписываем
a[j - 1] = box; // Восстанавливаем
}
}
}
// --- ВЫВОД ---
for (short j = 0; j < 7; j++) {
cout << a[j] << " "; // Печать через пробел
}
delete[] a; // Обязательно очищаем память!
return 0;
}
#include <iostream>
using namespace std;
int main() {
// Массив типа short (экономим память на данных)
short* a = new short[7];
// Используем unsigned char для счетчика i (экономим память на индексах)
for (unsigned char i = 0; i < 7; i++) {
cin >> a[i];
}
// --- СОРТИРОВКА ---
// Проходим по всему массиву
for (unsigned char i = 0; i < 7; i++) {
// Представляем, что текущий элемент i - самый маленький
unsigned char minIndex = i;
// Ищем реальный минимум в оставшейся части массива
for (unsigned char j = i + 1; j < 7; j++) {
// Если нашли число меньше текущего минимума
if (a[j] < a[minIndex]) {
minIndex = j; // Запоминаем его индекс
}
}
// Если минимум нашелся не на позиции i, а дальше
if (minIndex != i) {
// Меняем местами текущий элемент и найденный минимум
short box = a[i];
a[i] = a[minIndex];
a[minIndex] = box;
}
}
// Вывод результата
for (unsigned char i = 0; i < 7; i++) {
cout << a[i] << " ";
}
delete[] a; // Удаляем массив из памяти
return 0;
}
#include <iostream>
using namespace std;
int main() {
// Создаем динамический массив
short* a = new short[7];
// Ввод
for (short i = 0; i < 7; i++) {
cin >> a[i];
}
// --- СОРТИРОВКА ---
// Начинаем со 2-го элемента (индекс 1), так как 1-й считается отсортированным
for (short i = 1; i < 7; i++) {
short key = a[i]; // Запоминаем карту, которую хотим вставить
short j = i - 1; // Смотрим на соседа слева
// Пока мы не вышли за границы (j >= 0) И сосед больше нашей карты
while (j >= 0 && a[j] > key) {
a[j + 1] = a[j]; // Сдвигаем соседа вправо
j--; // Идем дальше влево (может стать -1!)
}
a[j + 1] = key; // Вставляем нашу карту в освободившееся место
}
// Вывод
for (short i = 0; i < 7; i++) {
cout << a[i] << " ";
}
delete[] a; // Чистим память
return 0;
}