Архив блога

воскресенье, 30 января 2011 г.

Задача 155.

Напишите программу, которая объединяет два упорядоченных по возрастанию массива в один, также  упорядоченный массив.

/*
    Программа объединяет два упорядочных массива
    в один упорядоченный массив.
*/
#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;
}

Комментариев нет:

Отправить комментарий