Форум программистов, компьютерный форум 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++ Вычислить значение выражения Помогите решить это в С++ просто нужно вывести ответ подробнее

Показать сообщение отдельно
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
16.03.2014, 16:32     Алгоритм сортировки слиянием. Исправить ошибки в коде
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
68
69
#include <iostream>
#include <time.h>
 
void merge(int array[], int left, int right, int n)
{
    int middle, start1, start2, j;
    
    int *tempArray = new int[n];
 
    middle = (left + right)/2;
    start1 = left;//начало левой части
    start2 = middle + 1;// начало второй части
    
    for( j = left; j <= right; j++)
    {
        if ((start1 <= middle) && ((start2 >= middle) || (array[start1] < array[start2])))
        {
            tempArray[j] = array[start1];
            start1++;
        }
        else
        {
            tempArray[j] = array[start2];
            start2++;
        }
 
        for(j = left; j <= right; j++)
        {
            array[j] = tempArray[j];
            delete[]tempArray;
        }
    }
 
}
 
void mergeSort(int array[], int left, int right, int n)
{
    if (left<right)
    {
        mergeSort(array, left, (left+right)/2, n); //сортировка левой части //от первого элемента до элемента посередине
        mergeSort(array, (left+right)/2+1, right, n); //сортировка правой части //от элемента (середина + 1) до последнего
        merge(array, left, right, n); //слияние двух частей
    }
}
 
void main()
{
    int n;
    std::cout << "enter scale of array " << std::endl;
    std::cin >> n;
    int *array = new int[n];
 
    srand(time(NULL));
 
    for(int i = 0; i < n; i++)
    {
        array[i] = rand()%100 + 1;
        std::cout << array[i] << ", ";
    }
 
    mergeSort(array, 1, n, n);
 
    for (int i = 0; i < n; i++)
    {
        std::cout << array[i] << ", ";
    }
 
    system("pause");
}
Подскажите, пожалуйста, почему ругается в функции merge. Конкретно при создании tempArray
Expression: _BLOCK_TYPE_IS_VALID(pHea->nBlockUse)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru