Форум программистов, компьютерный форум CyberForum.ru

Алгоритм сортировки слиянием. Исправить ошибки в коде - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массивы. Ввести n элементов одномерного массива, вычислить указанное выражение, вывести на экран http://www.cyberforum.ru/cpp-beginners/thread1120933.html
Составить программу на языке С++ для обработки одномерных массивов с использованием указателей: 1. .Ввести n элементов одномерного массива; 2. Вычислить указанное выражение; 3 Вывести на экран значение указанного выражения. Помогите, другие программы по с++ сделал, осталась только с факториалом
C++ Определить существенные и фиктивные переменные. Вывести на экран таблицу истинности для существенных переменных Для функции трёх переменных определить существенные и фиктивные переменные. Вывести на экран таблицу истинности для существенных переменных. Вот мой код, но где-то закралась ошибка, так как таблицы выводятся не для всех функций, которые я ввожу, к примеру: 10111011, оно скажет, что переменные y, z - существенные, но таблицу не выдаст. #include <iostream> #include <math.h> using namespace... http://www.cyberforum.ru/cpp-beginners/thread1120911.html
C++ Обработка сведений о студентках
Помогите исправить программу. Вроде нет ошибок но он неправильно выводит. Вот условие задачи: Составьте программу для обработки сведений о студентках своей группы. Сведения представляются в виде таблицы, содержащей фамилии студентов и определить характеристики: Характеристики: ФИО, дата рождения Обработка: Выбор родившихся в заданное год #include <conio.h> #include <iostream>
Работа с библиотекой STL, контейнер map C++
Ввожу с экрана имя и номер телефона несколько раз, но for_each почему-то выводит на экран только последнего введенного пользователя, а мне нужно, чтобы выводил всех. Объясните, что я не так делаю? И еще когда пытаюсь вставить for_each в отдельный if(x==3), то на команду 3 вообще никак не реагирует. заранее спасибо! //---------------------------------------------------------------------------...
C++ Найти слово, в котором число различных символов минимально http://www.cyberforum.ru/cpp-beginners/thread1120879.html
Добрый вечер! Помогите, пожалуйста. Ввести n слов с консоли. Найти слово, в котором число различных символов минимально. Если таких слов несколько, найти первое из них.
C++ Вычислить значение выражения Помогите решить это в С++ просто нужно вывести ответ подробнее

Показать сообщение отдельно
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.03.2014, 00:15     Алгоритм сортировки слиянием. Исправить ошибки в коде
У меня работает
Размер массива > 5
0 элемент > 4
1 элемент > 1
2 элемент > 0
3 элемент > 2
4 элемент > 3
Упорядоченный массив: 0 1 2 3 4

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <time.h>
 
using namespace std;
//функция, сливающая массивы
void Merge(int *A, int first, int last)
{
    int middle, start, final, j;
    int *mas=new int[last];
    middle = (first + last) / 2; //вычисление среднего элемента
    start = first; //начало левой части
    final = middle + 1; //начало правой части
    for (j = first; j <= last; j++) //выполнять от начала до конца
    {
        if ((start <= middle) && ((final>last) || (A[start]<A[final])))
        {
            mas[j] = A[start];
            start++;
        }
        else
        {
            mas[j] = A[final];
            final++;
        }
    }
    //возвращение результата в список
    for (j = first; j <= last; j++)
    {
        A[j] = mas[j];
    }
    delete[]mas;
};
//рекурсивная процедура сортировки
void MergeSort(int *A, int first, int last)
{
    if (first<last)
    {
        MergeSort(A, first, (first + last) / 2); //сортировка левой части
        MergeSort(A, (first + last) / 2 + 1, last); //сортировка правой части
        Merge(A, first, last); //слияние двух частей
    }
};
//главная функция
int main()
{
    setlocale(LC_ALL, "Rus");
    int i, n;
 
    cout << "Размер массива > "; cin >> n;
    int *A = new int[n];
 
    for (i = 0; i < n; i++)
    {
        cout << i << " элемент > ";
        cin >> A[i];
    }
 
    MergeSort(A, 0, n-1); //вызов сортирующей процедуры
    cout << "Упорядоченный массив: "; //вывод упорядоченного массива
 
    for (i = 0; i < n; i++)
    {
        cout << A[i] << " ";
    }
    delete[]A;
    system("pause>>void");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru