Форум программистов, компьютерный форум 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, 23:42  [ТС]     Алгоритм сортировки слиянием. Исправить ошибки в коде
_Vertigo_,
C++
1
2
3
4
5
for(j = left; j <= right; j++)
        {
            array[j] = tempArray[j];
            delete[]tempArray;
        }
вот тут ошибка была, удалял массив несколько раз де-факто

Добавлено через 2 часа 1 минуту
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); //слияние двух частей
    }
};
//главная функция
void main()
{
    setlocale(LC_ALL, "Rus");
    int i, n;
    
    cout<<"Размер массива > "; cin>>n;
    int *A=new int[n];
 
    for (i=1; i<=n; i++)
    { 
        cout<<i<<" элемент > "; 
        cin>>A[i];
    }
 
    MergeSort(A, 1, n); //вызов сортирующей процедуры
    cout<<"Упорядоченный массив: "; //вывод упорядоченного массива
 
    for (i=1; i<=n; i++) 
        {
            cout<<A[i]<<" ";
        }
    delete []A;
    system("pause>>void");
}
в общем взял чужой код, но вставил динамический массив
ругается при создании массива mas
HEAP CORRUPTION DETECTED
кто-нибудь может подсказать в чем дело?
 
Текущее время: 16:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru