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

Неполадки с сортировкой массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить строку с самой длинной серией одинаковых элементов http://www.cyberforum.ru/cpp-beginners/thread601052.html
Код я написала ,но если вводить маленькое количество строк,и большое количество столбцов то происходит ошибка,возможно выход за пределы (это второе задание- int ser_elem),у меня уже голова не работает, помогите пожалуйста. #include <iostream> #include <fstream> #include <ctime> using namespace std; void Vyvod (int **A , int N, int M)// вывод матрицы на экран { for(int i=0;i<N;i++) {
C++ Ошибка со значение переменной перед вызовом функции Ошибки функция int form_tab(FILE *f,struct el_tab tab,float sum ,int d,int mesto), из мейна строка d=form_tab(f,tablisa,sum,d,mesto); программа требует, чтобы d имела какое-то значение перед тем, как вызвать функцию Помогите исправить. #include <stdio.h> #include <conio.h> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread601045.html
C++ Передача аргументов в функции
Ребят, никогда раньше не задумывался каким же образом передаются аргументы. Сейчас же дошел до передачи аргументов через указатель и ссылку. И вот зашел в небольшой тупик. Вот 3 простейших примера передачи аргументов: а) через указатель: #include <iostream> using namespace std; void fn(int* pintArg) { //как это понять? *pintArg = 10;
Пакетное переименование файлов C++
Задание: Создать папку в ней 10 файлов. Программа от пользователя получает маску, все файлы которые подходят под маску переименовать. Подскажите алгоритм реализации, функции, желательно ссылки.
C++ Подскажите пожалуйста с динамической DLL библиотекой http://www.cyberforum.ru/cpp-beginners/thread601029.html
1. Разработка DLL библиотеки.// MathFuncsDll.h namespace MathFuncs { class MyMathFuncs { public: static __declspec(dllexport) double +(double a, double b); static __declspec(dllexport) double -(double a, double b); static __declspec(dllexport) double *(double a, double b);
C++ Идентификации пользователя в системном реестре Вот начальный код#include "stdafx.h" #include <iostream> #include <conio.h> #include <string.h> #include <stdlib.h> #include <cstdlib> using namespace std; char pass,pass1,k=0; подробнее

Показать сообщение отдельно
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
08.06.2012, 22:58     Неполадки с сортировкой массива
Просто в пространстве имен идет где-то повторение с именем твоего массива exit , поэтому ругается, всё остальное правильно . Я заменил твой массив exit на массив exit1 и всё работает.
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
70
#include <iostream>
#include <conio.h>
#include <locale.h>
#include <stdlib.h>
 
using namespace std;
 
void sort (int n);  //прототип функции сортировки
void swap (int *p1, int *p2); //функция, которая меняет местами две переменные
int enter [10] = {39, 12, 41, 21, 53, 10, 8, 45, 60, 50};   //входной массив
int exit1 [10];  //выходной массив
 
int main () {
    setlocale (0, "RUS");
    
    int k;
    cout << "Изначальный массив\n" << endl;
    for (k = 0; k < 10; k++) 
        cout << enter[k] << "\n\n";
 
    sort (10); //вызов функции сортировки
    cout << "Отсортированный массив\n" << endl;
 
    for (int i = 0; i < 10; i++)
        cout << exit1 [i] << "\n\n" << endl;
    
    _getch();
    return 0;
}
 
void sort (int n) {
    int amax, imax, t = 0; //максимальный элемент и его номер
    amax = enter [0];
    exit1 [0] = amax;
 
    for (int i = 0; i < n; i++) {
        imax = i;
        for (int j = i + 1; j < n; j++)
            if (enter [j] > amax) {
                t++;
                exit1 [t] = enter [j]; //переносим элемент во второй массив
                enter [imax] = -1; //в первый массив заносим -1
                amax = enter [j];   //заменяем максимальное значение
                imax = j;   //Заменяем номер максимального
                enter [imax] = -1;
            }
    }
 
    for (int i = 0; i < n; i++) {   //проверка оставшихся элементов и перенос их
        if (enter[i] != -1) {
            t++;
            exit1 [t] = enter [i];
            enter [i] = -1;
        }
    }
 
    //вставка погружением. проверка выходного массива и перестановка элементов в порядке возрастания
    for (int i = 0; i < n - t; i++) {
        for (t = i + t; t > 0; t--) {
            if (exit1[t] < exit1 [t-1])
                swap (&exit1[t], &exit1[t-1]);
        }
    }
}
 
void swap (int *p1, int *p2) {
    int temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}
 
Текущее время: 22:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru