Решения (задачи 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();