Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 140-158)

Задача 154.

// Сортировка массива методом "пузырька"
#include <stdio.h> #include <conio.h> #define SZ 5 void main()
int a[SZ];
int i; // счетчик циклов
int k; // текущий индекс элемента массива
int buf;
printf("Хп Сортировка массива методом \"пузырька\"\п");
printf("Введите массив (в одной строке %i ", SZ);
printf("целых чисел) и нажмите Enter\n"); for (k = 0; k < SZ; k++)
scanf("%i", &a[k]); printf("Сортировка…\n"); for (i = 0; i < SZ-1; i {
for (k = 0; к < SZ-1; k++)
{
if (a[k] > a[k+l])
// обменяем к-й и (к+1)-й элементы
buf = а[к]; а[к] = а[к+1]; а[к+1] = buf; // отладочная печать – состояние
// массива после очередного цикла сортировки for (k = 0; к < SZ; к++)
printf("%i ",a[k]); printf ("W);
}
printf("Массив отсортированХп"); for (к =0; к < SZ; k++)
printf("%i ",a[k]);
printf("\п\п Для завершения работы нажмите Enter");
getch();

Задача 155.

// Объединение двух упорядоченных массивов в один
#include <stdio.h>
#include <conio.h>
#define SZ 5 // размер исходных массивов
void main ()
{
int a[SZ], b[SZ]; // исходные массивы
int c[SZ*2]; // массив – результат
int k,i,m; // индексы массивов a, b и с
printf{"Объединение двух упорядоченных ");
printf("по возрастанию массивов\п");
printf("Введите первый массив ");
i = 0; i < SZ-1; i {
for (k = 0; к < SZ-1; k++)
{
if (a[k] > a[k+l])
// обменяем к-й и (к+1)-й элементы
buf = а[к]; а[к] = а[к+1]; а[к+1] = buf;
// отладочная печать – состояние
// массива после очередного цикла сортировки
for (k = 0; к < SZ; к++)
printf("%i ",a[k]); printf ("W);
}
printf("Массив отсортированХп"); for (к =0; к < SZ; k++)
printf("%i ",a[k]);
printf("\п\п Для завершения работы нажмите Enter");
getch();

Задача 156.

// Объединение двух упорядоченных массивов в один
#include <stdio.h>
#include <conio.h>
#define SZ 5 // размер исходных массивов
void main ()
{
int a[SZ], b[SZ]; // исходные массивы
int c[SZ*2]; // массив – результат
int k,i,m; // индексы массивов a, b и с
printf{"Объединение двух упорядоченных ");
printf("по возрастанию массивов\п");
printf("Введите первый массив ");
printf("(%i целых чисел) › ", SZ);
for (к = 0; к < SZ; k++) scanf("%i", sa[k]);
printf("Введите второй массив ");
printf("(%i целых чисел) › ", SZ);
for (i = 0; i < SZ; i++) scanf("%i",
к = i = m = 0; do {
if (a[k] < b[i])
else
if (a[k]
else
} while (к < SZ && i < SZ); // один из двух исходных
// массивов полностью не переписан в массив С
while (к < SZ) // есть эл-ты А, не переписанные в С
while (i < SZ) // есть эл-ты В, не переписанные в С
printf("Массив – результат: \п"); for (i = 0; i < 2 * SZ; i++)
printf("%i ", c[i]);
printf("Для завершения работы нажмите Enter\n");
getch();
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.