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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Зачем нужно опережающее объявление класса в заголовке? http://www.cyberforum.ru/cpp-beginners/thread643145.html
Часто натыкаюсь на такой код: class NewType; class Class1 { public: Class1(); private: NewType *field; };
C++ Создание медиа проигрывателя Я хочу создать музыкальный проигрыватель, т.к. Winamp достал тупостью, и нечего делать. Мне для этого нужно: 1) Библиотека с чем-то там, я не помню. 2) Желательно исходники. 3) Материальчик... http://www.cyberforum.ru/cpp-beginners/thread643144.html
Подбор блоков в списке C++
#include <iostream> #include <fstream> #include <locale.h> #include <stdio.h> using namespace std; struct Node { int elem; //элемент списка Node *next; //указатель на следующий элемент...
очередь C++
Что то никак не получается разобраться. Есть база данных клиентов банка. Создать очередь клиентов приоритет которых будет по количеству денег на счету. То есть я так понимаю что нужен двумерный...
C++ Проблеми с glut.h http://www.cyberforum.ru/cpp-beginners/thread643108.html
Здраствуйте уважаемие форумчане. У меня возникла проблема при установке библиотек и модулей OpenGL а именно glut.h. У меня Dev-C++ 4.9.9.2 . Порядок установки : 1) Скопировал файл glut.h в папку...
C++ Сортировка простыми включениями Есть массив, его нужно отсортировать простыми включениями(вставками). У меня получилась вот такая вот программа, но выдаёт не совсем корректную информацию, выдаёт в начале массива 0 и не все... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,934
28.08.2012, 00:41
Цитата Сообщение от Alt_Shift Посмотреть сообщение
а как правильно?
в смысле ???
так и есть правильно
это просто работа с отладчиком
все что происходит в строке ты увидишь
когда курсор будет стоять на следующей строке
например
C++
1
2
3
int k=5;// вот здесь ты увидишь в k мусор
k=7+10;// вот здесь ты увидишь в k 5
 ....  // вот здесь ты увидишь в k 17
Добавлено через 6 минут
Цитата Сообщение от Alt_Shift Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int k = 0; k<N; k++)
 {
 for(int j = 0;j < SIZE - 1; ++j) // i - номер прохода
 { 
 for(int i = 0; i < SIZE - 1; ++i) // внутренний цикл прохода
 { 
 if (matrix[k][2] < matrix[k+1][2]) 
 {
 temp = matrix[k][2]; 
 matrix[k][2] = matrix[k+1][2]; 
 matrix[k+1][2] = temp;
 }
 }
 }
 }
вот она твоя ошибка
matrix[k][2] ты берешь третий столбец (выход за пределы)
matrix[k+1][2] на последней итерации будет matrix[N][2](опять выход за пределы)
и зачем ты крутишь циклы j и i если не используешь в теле этих значений

Добавлено через 4 минуты

Добавлено через 21 минуту
если хочешь сортировать 2 столбец то наверное так
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int k=0; k<N-1; k++) // цикл проходов
 {
 for(int j =0 ;j <N-k ; j++) 
   { 
     if (matrix[j][1] > matrix[j+1][1]) 
     {
       temp = matrix[j+1][1]; 
       matrix[j+1][1] = matrix[j][1]; 
       matrix[j][1] = temp;
     }
   }
 }
"камешком"

C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int k=N-1; k>1; k--) // цикл проходов
 {
 for(int j =k-1 ;j <N-1 ; j++) 
   { 
     if (matrix[j][1] >matrix[j+1][1]) 
     {
       temp = matrix[j+1][1]; 
       matrix[j+1][1] = matrix[j][1]; 
       matrix[j][1] = temp;
     }
   }
 }
"пузырьком"

Добавлено через 15 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
for (int k=1; k<N; k++) // цикл проходов
 {
 for(int j =N-k-1 ;j >=0 ; j--) 
   { 
     if (matrix[j][1] >matrix[j+1][1]) 
     {
       temp = matrix[j+1][1]; 
       matrix[j+1][1] = matrix[j][1]; 
       matrix[j][1] = temp;
     }
   }
 }
еще один "пузырек"
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru