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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лжец
31 / 31 / 3
Регистрация: 13.12.2011
Сообщений: 106
#1

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

17.12.2011, 00:05. Просмотров 254. Ответов 0
Метки нет (Все метки)

Есть массив чисел 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 минут
Поднимаю тему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 00:05     "Аномалия" в сортировке массивов
Посмотрите здесь:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Ошибка при быстрой сортировке файла: "string subscript out of range" - C++
В файле input.txt содержатся сведения о группе студентов в формате: номер группы; запись о каждом студенте группы содержит следующие...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru