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

"Аномалия" в сортировке массивов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки библиотека string.h http://www.cyberforum.ru/cpp-beginners/thread409376.html
Дана строка символов, состоящая из букв и цифр. Найти количество букв в данной строке. Использовать функции библиотеки string.h
C++ Вывести табличные функции Всем доброй ночи. Выручайте, задали по программированию задачу. Очень плохо понимаю предмет, но сдать надо, так как сессия на носу! --------------------------------------------------------------------------------------------- Условие: Вывести табличные функции f(x,y)= (x cos x + y cos y)/x-y При x=0 (п/8) п; y=0 (п/16) п Сделать две разных программы. C операторами: 1.задействовать... http://www.cyberforum.ru/cpp-beginners/thread409374.html
2 мерный массив. C++
Дана целочисленная прямоугольная матрица. определить: 1) Количество отрицательных элементов в тех строках которые содержат хотябы один нулевой элемент. 2) номера строк и столбцов всех седловых точек матрицы. Примечание. Матрица А имеет седловую точку Aj, если Aj является минимальным элементом в i-й строке и максимальным в j-v столбце. помогите пожалуйста)
C++ Сохранение вектора в текстовый файл
Есть класс в котором содержится только указатель на строку символов. Далее есть vector<OurClass> v. Как сохранить в текстовый файл наш вектор более грамотно и экономично Чтение из файла назад в вектор производиться не будет :D Добавлено через 56 минут Поднимаю
C++ не могу разобратся, что-то не так с сохранением в файл(VS 2010) http://www.cyberforum.ru/cpp-beginners/thread409358.html
помогите пожалуйста, вроде все работает кроме бинарного сохранения в файлTPop*data,*tmp; FILE*Txt; int fh=0; int deln=0; CString S; if(savegood==-1){MessageBox(_T("Оберіть режим збереження."),_T("Інформація"),MB_OK|MB_ICONINFORMATION);return;} F=_tfopen(Sfilename,_T("wb")); if(!F){MessageBox(_T("Файл не відкритий!"),_T("Помилка!"),MB_OK|MB_ICONSTOP);return;} if(savegood){...
C++ помогите плиз с кодом разобраться #include <iostream> #include <ctime> using namespace std; void Kubiki(int igrok, int comp, int summai=0, int summac=0); int main() { srand(time(0)); Kubiki(int igrok, int comp, int summai=0, int summac=0); return 0; подробнее

Показать сообщение отдельно
Лжец
 Аватар для Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
17.12.2011, 00:05     "Аномалия" в сортировке массивов
Есть массив чисел int. В котором присутствуют как отрицательные, так и положительные числа. Есть два цикла for - один из которых записывает все отрицательный числа в конец массива, другой в начало, на вид они одинаковы, почему по разному работают?

Вот код первого (отрицательный числа в конец)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    int num[11] = { -1,-2,3,4,-1,6,-7,8, -1, -1 };
 
    for(int y=0; y<10-1; y++){
        
        for(int f=0; f<10-1-y; f++){
            
            if(num[f] > 0) {}
 
                if(num[f] < 0)
                {
                    int temp;
 
                    temp=num[f];
 
                    num[f]=num[f+1];
 
                    num[f+1] = temp;
            }
        }
    }
Результат:
3 4 6 8 -1 -1 -7 -1 -2 -1
Вот код второго, (отрицательный числа в начало):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int num[11] = { -1,-2,3,4,-1,6,-7,8, -1, -1 };
 
    for(int i=0;i<10-1;i++)
        
        for(int j=0;j<10-1-i;j++)
            
            if(num[j]>0)
            
                if(num[j+1]<0)
                                {
                                      int temp;
 
                                      temp=num[j];
                    
                              num[j]=num[j+1];
                    
                              num[j+1]=temp;
                                }
Результат:
-1 -2 -1 -7 -1 -1 3 4 6 8
Понимаю что дело в фигурных скобках, но логики не понимаю, буду рад если кто пояснит, в чем тут дело.

Добавлено через 30 минут
Поднимаю тему.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru