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

Где тут ошибка? Программа сортировки массива по возрастанию - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ заполнение структуры, где-то ошибка run-time check failure #2 stack around the variable a was corrupted http://www.cyberforum.ru/cpp-beginners/thread1001622.html
Просмотрите пожалуйста код, ошибка run-time check failure #2 stack around the variable 'Data' was corrupted. Почитал, что она возникает, если выйти за пределы массива.. Но что-то я тут такого не нахожу.. Код - самое обычное заполнение полей структуры. #include <iostream> #include <string> using namespace std; struct Data { int a;
C++ Определение классов, их реализацию, демонстрационную программу поместить в отдельные файлы. Работаю в консольном приложении CLR в vs 2010, в задании сказано: "Определение классов, их реализацию, демонстрационную программу поместить в отдельные файлы." Я помню, что в vs 2010 на с# можно создать библиотеку классов, сделать ссылку на нее из консольного приложения и использовать эти классы, но тут не получается: создал еще проект библиотеку классов, добавил ссылку на него, а классы он не... http://www.cyberforum.ru/cpp-beginners/thread1001594.html
C++ Не могу найти ошибку в коде(постфиксная запись инфиксного выражения)
Использую цифры от 1 до 9,Ю пишу для простеньких выражний . Всё отлично работает когда выражение без скобок. Когда ввожу выражение со скобками - он мне даже ответ не выводит ответ(критически закрывается локальный загрузчик виндовс). Что не так? В переменной kol храню колво данных в стеке #include <iostream>
C++ C++ switch для переменных char
можно ли switch применять к переменным типа char или в чём тогда ошибка, подчёркивает строку case 'London':? #include <iostream> using namespace std; int main(){ char born; int old; int mark = 0; cout << "\t First" << endl;
C++ В прямогольной матрице определить количество столбцов, не содержащих ни одного нулевого элемента и расположить их в соответствии с ростом характеристи http://www.cyberforum.ru/cpp-beginners/thread1001559.html
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента. Характеристикой строки целочисленной матрицы назовём сумму её положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
C++ Трудности при создании класса Делаю приложения на Windows Forms. Надо сделать иерархию классов. В абстрактом классе описал нужные поля, но при попыте скомпилировать программу сразу ругаеться на на 2 поля типа string в классе. Если забрать ети две строчки, то все нормально. class vehicle { protected: string brand; // тут ругаеться string model; // и тут float engine_volume; int number_of_cylinders; enum... подробнее

Показать сообщение отдельно
dimassasin
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 14
08.11.2013, 13:14     Где тут ошибка? Программа сортировки массива по возрастанию
программа сортирует массив по возрастанию. кусок кода который выполняет сортировку взял с инета. но преп придрался к оформлению и после того как расставил все скобки пошел бесконечный цикл.
if и swap были в одной строке. что я переписал не так? помогите разобраться пожалуйста
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
#include <iostream>
#include <locale>
#include <algorithm>
 
using namespace std;
 
void Swap(int *Mas, int i)
{
int temp;
temp=Mas[i];
Mas[i]=Mas[i-1];
Mas[i-1]=temp;
}
void ShakerSort(int *Mas, int Start, int N)
{
    int Left, Right, i;
    Left=Start;
    Right=N-1;
    while (Left<=Right)
    {
        for (i=Right; i>=Left; i--)
        {
            if (Mas[i-1]>Mas[i]) 
            {
                Swap(Mas, i);
                Left++;
            }
        }
        for (i=Left; i<=Right; i++)
        {
            if (Mas[i-1]>Mas[i]) 
            {
                Swap(Mas, i);
                Right--;
            }
    }
    }
}
 
 
 
int main(int argc, char** argv) {
    int N;
    setlocale (LC_ALL, "rus");
    cout<<"Введите количество элементов массива ";
    cin>>N;
    int *a=new int [N];
    for (int i=0; i<N; i++)
    {
        cout<<i+1<<" ";
        cin>>a[i]; 
    }
    
  ShakerSort(a, 1, N);
  
    for (int i=0; i<N; i++)
    {   
        cout<<a[i]<<" ";//похоже что бесконечный цикл. 1 ядро-100%
    }
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru