Напишите программу, которая объединяет два упорядоченных по возрастанию массива в один, также упорядоченный массив.
/*
Программа объединяет два упорядочных массива
в один упорядоченный массив.
*/
#include "locale.h"
#include "curses.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define HB 25
main()
{
int i, j, k, temp;
int s[HB], v[HB], rez[HB * 2];
time_t t;
char *log;
log = setlocale(LC_CTYPE,"ru_RU.UTF-8");
srand((unsigned)time(&t));
initscr();
printw("Объединение двух упорядоченных по возрастанию массивов.\n");
printw("Создание двух неупорядоченных массивов...\n");
// Создаем массив s[i]
printw("s[i] -> ");
for(i = 0; i < HB; i++)
{
s[i] = rand() % 10 + 1;
printw("%i ", s[i]);
}
printw("\n");
// Создаем массив v[i]
printw("v[i] -> ");
for(i = 0; i < HB; i++)
{
v[i] = rand() % 10 + 1;
printw("%i ", v[i]);
}
printw("\n");
// Сортировка массива s[i] по возрастанию.
for(i = 0; i < HB - 1; i++)
{
for(k = i + 1; k < HB; k++)
{
if(s[i] > s[k])
{
temp = s[k];
s[k] = s[i];
s[i] = temp;
}
}
}
// Сортировка массива v[i] по возрастанию.
for(i = 0; i < HB - 1; i++)
{
for(k = i +1; k < HB; k++)
{
if(v[i] > v[k])
{
temp = v[i];
v[i] = v[k];
v[k] = temp;
}
}
}
// Отсортированные массивы выводим на экран.
printw("Отсортированные массивы\n");
// Массив s[i]
printw("s[i] -> ");
for(i = 0; i < HB; i++)
{
printw("%i ", s[i]);
}
printw("\n");
// Массив v[i]
printw("v[i] -> ");
for(i = 0; i < HB; i++)
{
printw("%i ", v[i]);
}
printw("\n"); // Перевод строки.
// Создание конечного массива (неотсортированного)
// Часть I
for(i = 0; i < HB; i++)
{
rez[i] = s[i];
}
// Часть II
k = 0;
for(i = HB; i < HB * 2; i++)
{
rez[i] = v[k];
k++;
}
// Вывод на экран не отсортированного массива rez[i]
printw("rez[i] -> ");
for(i = 0; i < HB * 2; i++)
{
printw("%i ", rez[i]);
}
printw("\n");
// Сортировка массива rez[i]
for(i = 0; i < (HB * 2) - 1; i++)
{
for(k = i + 1; k < HB * 2; k++)
{
if(rez[i] > rez[k])
{
temp = rez[i];
rez[i] = rez[k];
rez[k] = temp;
}
}
}
printw("\n");
printw("Отсортированный массив rez[i]: \n");
// Вывод на экран отсортированного массива.
for(i = 0; i < HB * 2; i++)
{
printw("%i ", rez[i]);
}
printw("\n");
printw("Нажмите <Enter> для выхода из программы.");
getch();
endwin();
return 0;
}
Комментариев нет:
Отправить комментарий