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

Программа компилируется но не работает - C++

Восстановить пароль Регистрация
 
 
Alt_Shift
 Аватар для Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
27.08.2012, 20:11     Программа компилируется но не работает #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
#include <conio.h>
#include<windows.h>
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
  setlocale(0, "");
    srand(unsigned(time(NULL)));
    int N, SIZE=2,temp;
    cout<<"Введите размер матрицы: ";
    cin >> N;
    int ** matrix = new int * [N];
    for (int i = 0; i < N; i++)
        matrix [i] = new int [SIZE];
 
    for (int i = 0; i < N; i++)
        for (int j = 0; j <SIZE; j++)
            matrix[i][j] = ((rand() % 10));
                        
        
 cout << "Вот Ваша матрица:" << endl << endl;
 for (int i = 0; i < N; i++)
 {
     for(int j = 0; j < SIZE; j++)
         cout << matrix[i][j] << " ";
     cout << endl;
 }
 
 cout << endl;
 
for(int i = 0; i < SIZE; i++)
{
for(int j = 0; j < SIZE - 1; j++)
{
if(matrix[i][j + 1] < matrix[i][j])
{
temp = matrix[i][j + 1];
matrix[i][j + 1] = matrix[i][j];
matrix[i][j] = temp;
}
}
if(matrix[i + 1][0] < matrix[i][SIZE - 1])
{
temp = matrix[i + 1][0];
matrix[i + 1][0] = matrix[i][SIZE - 1];
matrix[i][SIZE - 1] = temp;
}
}
cout << "Вот Ваша матрица:" << endl << endl;
 for (int i = 0; i < SIZE; i++)
 {
     for(int j = 0; j < SIZE; j++)
         cout << matrix[i][j] << " ";
     cout << endl;
 }
  for (int i = 0; i < SIZE; i++)
            delete [] matrix[i];
        delete [] matrix;
}
Создается двумерный динамический массив, показывается и должен сортироваться пузырьком и снова показываться. но вместо этого вылетает ошибка "необработанное исключение"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 20:11     Программа компилируется но не работает
Посмотрите здесь:

C++ программа не компилируется
Не работает но компилируется C++
Не компилируется программа! C++
Не компилируется программа C++
Почему программа компилируется но не работает? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
28.08.2012, 08:31     Программа компилируется но не работает #21
Цитата Сообщение от Alt_Shift Посмотреть сообщение
Последняя сортирует но как то странно-только первые несколько строк
последний выбрось это я уже перемудрил
первые два прекрасно сортирует ошибка в инициализации циклов (ночью писал без компилятора)
1 способ
было
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
3
4
for (int k=0; k<N-1; k++) // цикл проходов
 {
   for(int j =0 ;j <N-k ; j++) 
    {
стало
C++
1
2
3
4
for (int k=1; k<N; k++) // цикл проходов
 {
     for(int j =0 ;j <N-k ; j++) 
      {
как видишь диапазон k сместился
2 способ
было
Цитата Сообщение от ValeryS Посмотреть сообщение
C++
1
2
3
for (int k=N-1; k>1; k--) // цикл проходов
 {
 for(int j =k-1 ;j <N-1 ; j++)
стало
C++
1
2
3
for (int k=N-1; k>0; k--) // цикл проходов
 {
   for(int j =k-1 ;j <N-1 ; j++)
не обрабатывал первую(нулевую) ячейку из-за k>1 стало k>0

если интересно с третьим способом
то вечером могу покумекать, где я накосячил
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alt_Shift
 Аватар для Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
28.08.2012, 17:46  [ТС]     Программа компилируется но не работает #22
Цитата Сообщение от ValeryS Посмотреть сообщение

если интересно с третьим способом
то вечером могу покумекать, где я накосячил
Спасибо, меня вполне устраивает пузырек А как бы теперь этому массиву дать возможность добавлять новые элементы ставя их в очередь приоритет которой по второму столбцу?

Добавлено через 52 минуты
Цитата Сообщение от Alt_Shift Посмотреть сообщение
Спасибо, меня вполне устраивает пузырек
сори...сразу просмотрел Она все равно не правильно сортирует. первый столбец остается без изменений, то есть если в данный момент это делается как
до:
5 8
2 5
9 2
6 7

после:
5 2
2 5
9 7
6 8

а элементы должны как бы всплывать вверх то есть после сортировки результут должен был быть

9 2
2 5
6 7
5 8
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,045
28.08.2012, 18:09     Программа компилируется но не работает #23
Цитата Сообщение от Alt_Shift Посмотреть сообщение
сортировка происходила по второму столбцу
Цитата Сообщение от Alt_Shift Посмотреть сообщение
первый столбец остается без изменений,
ты уж определись сортировать первый или нет?
Цитата Сообщение от Alt_Shift Посмотреть сообщение
а элементы должны как бы всплывать вверх то есть после сортировки результут должен был быть
9 2
2 5
6 7
5 8
вообще не понял что ты привел, первый то не сортирован
дай полное ТЗ

Цитата Сообщение от Alt_Shift Посмотреть сообщение
дать возможность добавлять новые элементы ставя их в очередь приоритет которой по второму столбцу?
переведи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2012, 18:23     Программа компилируется но не работает
Еще ссылки по теме:

Почему Visual Studio показывает ошибку, но программа компилируется и работает? C++
C++ Не компилируется программа
C++ Программа не компилируется

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alt_Shift
 Аватар для Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
28.08.2012, 18:23  [ТС]     Программа компилируется но не работает #24
Цитата Сообщение от ValeryS Посмотреть сообщение
ты уж определись сортировать первый или нет?

вообще не понял что ты привел, первый то не сортирован
тут уже неактуально) сам допер, вид цикла сортировки просто должен быть

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int k=N-1; k>0; k--) // цикл проходов
 {
   for(int j =k-1 ;j <N-1 ; j++) 
   {
     if (matrix[j][1] >matrix[j+1][1]) 
     {
       temp = matrix[j+1][1]; 
       temp2=matrix[j][0];
       matrix[j+1][1] = matrix[j][1]; 
       matrix[j][0]=matrix[j+1][0];
       matrix[j][1] = temp;
       matrix[j+1][0]=temp2;
     }
   }
 }
Yandex
Объявления
28.08.2012, 18:23     Программа компилируется но не работает
Ответ Создать тему
Опции темы

Текущее время: 22:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru