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

Расположить числа по возрастанию - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.91
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
15.09.2010, 15:36     Расположить числа по возрастанию #1
Пользователь вводит четыре числа: a, b, c, d

C++
1
2
float a, b, c, d;
cin >> a >> b >> c >> d;
как легче всего расположить их по возрастанию?
заранее спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2010, 15:36     Расположить числа по возрастанию
Посмотрите здесь:

C++ Расположить элементы каждого столбца матрицы Х по возрастанию значения
расположить элементы каждого столбца заданной матрицы по возрастанию значений C++
C++ расположить элементы каждого столбца заданной матрицы по возрастанию значений на С++
C++ Дана последовательность, расположить ее положительные элементы, стоящие на нечетных местах по возрастанию
C++ расположить три числа по возрастанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dxdy
 Аватар для dxdy
97 / 97 / 5
Регистрация: 14.06.2010
Сообщений: 283
15.09.2010, 15:52     Расположить числа по возрастанию #2
Лучше в таких целях использовать массив и взять любую сортировку, чтобы упорядочить последовательность по возрастанию. Можно конечно по извращаться и сделать сравнение всех чисел между собой, но это тогда будет 4! = 24 комбинации ответа и огромное количество сравнений. Поэтому можете уточнить условие задачи?
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
15.09.2010, 15:57  [ТС]     Расположить числа по возрастанию #3
Лучше в таких целях использовать массив и взять любую сортировку, чтобы упорядочить последовательность по возрастанию. Можно конечно по извращаться и сделать сравнение всех чисел между собой, но это тогда будет 4! = 24 комбинации ответа и огромное количество сравнений. Поэтому можете уточнить условие задачи?
вот если бы задача была на PHP я бы тоже засунул в массив и отсортировал.
вот, а число комбинаций я сразу прикинул когда нам сказали сделать с помощью проверок.
я просто первокурсник, мы только начали C и я массивы не знаю...

сказали есть 4 числа, надо расположить значения так a <= b <=c <= d
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.09.2010, 16:15     Расположить числа по возрастанию #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const int n = 4;
int mas[n];
int i, j, tmp;
for(i = 0; i < n; ++i)
    std::cin>>mas[i];
for(i = 0; i < n - 1; ++i)
    for(j = 0; j < i; ++j)
        if(mas[i] > mas[i + 1]) 
        {
            tmp = mas[i];
            mas[i] = mas[i + 1];
            mas[i + 1] = tmp;
        }
for(i = 0; i < n; ++i)
    std::cout<<mas[i];
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.09.2010, 16:50     Расположить числа по возрастанию #5
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    const int n = 5;
    char a[n];
    cin >> a;
    // soring
    for (int i = n - 1; i >= 1; i--)
        for (int j = 0; j < i; j++)
        {
            if (a[j] > a[j + 1])
            {
                int foo = a[j];
                a[j] = a[j + 1];
                a[j + 1] = foo;
            }
        }
    cout << endl;
    for (int i = 0; i < n; i++)
    cout << a[i];
    _getch();
}
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
15.09.2010, 17:35  [ТС]     Расположить числа по возрастанию #6
Asics^, спасибо огромное

M128K145, ваш пример работает неправильно.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.09.2010, 18:26     Расположить числа по возрастанию #7
vvsh, конечно не правильно, прочтите мою подпись
Но поскольку вы уже получили решение, то теперь и я скажу свой ответ

Я проверяю и обмениваю по индексу i, а не j и вы должны были это заметить и исправить


Asics^, прочтите
Цитата Сообщение от vvsh Посмотреть сообщение
Пользователь вводит четыре числа: a, b, c, d
а не 5 чисел, как у вас
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
15.09.2010, 18:48  [ТС]     Расположить числа по возрастанию #8
Я вариант который написал Asics^ переписал чуть и всё нормально)
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.09.2010, 19:20     Расположить числа по возрастанию #9
vvsh, да, в коде Asics^'а есть еще одна грубая ошибка. Вот так
Цитата Сообщение от Asics^ Посмотреть сообщение
C++
1
2
char a[n];
cin >> a;
Массивы никто не заполняет, их заполняют в цикле
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
15.09.2010, 19:55     Расположить числа по возрастанию #10
Цитата Сообщение от M128K145 Посмотреть сообщение
Asics^, прочтите
Сообщение от vvsh
Пользователь вводит четыре числа: a, b, c, d
а не 5 чисел, как у вас
Ну так я тоже в чём то согласен з вашей подписю
M128K145
15.09.2010, 19:56
  #11

Не по теме:

Asics^, выкрутились

Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
15.09.2010, 19:57     Расположить числа по возрастанию #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <set>
 
typedef float            T_num;
typedef std::set<T_num>  T_nums;
 
int main()
{    
    T_nums  nums;
    std::copy
        (
            std::istream_iterator<T_num>(std::cin), 
            std::istream_iterator<T_num>(), 
            std::inserter(nums, nums.end())             
        );//Ввести числа через пробел, затем нажать комбинацию клавиш конца файла
          //(у меня, например, это Ctrl + Z), и нажать Enter.
 
    std::copy(nums.begin(), nums.end(), std::ostream_iterator<T_num>(std::cout, "\n")); 
}
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
15.09.2010, 22:22  [ТС]     Расположить числа по возрастанию #13
M128K145, извините конечно но я не такой уж ламер что этого не понимаю. всё таки php знаю в идеале и есть свои cms'ки. вот мой код

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
float a, b, c, d;
    int n = 4;
    
    cout << "Введите 4 числа:" << endl;
    cin >> a >> b >> c >> d;
    
    float array[]={a, b, c, d};
    
    for (int i=n-1;i>=1;i--)
    {
        for (int j = 0; j < i; j++)
        {
            if (array[j] > array[j + 1])
            {
                float val = array[j];
                array[j] = array[j + 1];
                array[j + 1] = val;
            }
        }
    }
    
    cout << endl;
    
    for (int i = 0; i < n; i++)
    {
        cout << array[i];
        
        if (i<n-1)
        cout << " <= ";
    }
    
    cout << endl;
Добавлено через 1 минуту
Mr.X, я только новичок, я такого не учил.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
16.09.2010, 08:50     Расположить числа по возрастанию #14
Цитата Сообщение от vvsh Посмотреть сообщение
M128K145, извините конечно но я не такой уж ламер что этого не понимаю. всё таки php знаю в идеале
Сомневаюсь, что это так, потому что невозможно знать что-то в идеале.


Цитата Сообщение от vvsh Посмотреть сообщение
C++
1
2
cin >> a >> b >> c >> d;
float array[]={a, b, c, d};
Вот так массивы тоже никто не заполняет
Почему? А давайте возьмем количество элементов хотя-бы 20, ваши действия? Кстати, о PHP, там тоже массивы заполняются в цикле, а не так как у вас, и вы должны были это знать, раз знаете его в идеале
sphere
1 / 1 / 0
Регистрация: 12.05.2010
Сообщений: 25
16.09.2010, 10:33     Расположить числа по возрастанию #15
// Сортировка чисел a, b, c, d;
Одним из алгоритмов является метод пузырька:
http://ru.wikipedia.org/wiki/%D0%A1%...BA%D0%BE%D0%BC

http://www.google.ru/#hl=ru&source=h...bc4258aacbfe4d
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
16.09.2010, 22:30  [ТС]     Расположить числа по возрастанию #16
Сомневаюсь, что это так, потому что невозможно знать что-то в идеале.
Ну конечно в идеале нельзя. но максимально хорошо.

Вот так массивы тоже никто не заполняет
Почему? А давайте возьмем количество элементов хотя-бы 20, ваши действия? Кстати, о PHP, там тоже массивы заполняются в цикле, а не так как у вас, и вы должны были это знать, раз знаете его в идеале
да но я сделал так мне так проще. в php да, но там когда данные приходят методом POST там в цикле не получиться =)

ну на PHP есть CMS'ки. Как CodeIgniter.

Добавлено через 1 минуту
C++
1
2
3
4
5
// Сортировка чисел a, b, c, d;
Одним из алгоритмов является метод пузырька:
[url]http://ru.wikipedia.org/wiki/%D0%A1%...BA%D0%BE%D0%BC[/url]
 
[url]http://www.google.ru/#hl=ru&source=h...bc4258aacbfe4d[/url]
я просмотрю. спасибо
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
16.09.2010, 22:38     Расположить числа по возрастанию #17
Цитата Сообщение от vvsh Посмотреть сообщение
когда данные приходят методом POST
то тогда они приходят в виде массива, а не набора переменных
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
16.09.2010, 22:59  [ТС]     Расположить числа по возрастанию #18
А то что предложил Asics^ это же и есть метод пузырька?

Добавлено через 3 минуты
то тогда они приходят в виде массива, а не набора переменных
ну это понятно.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
16.09.2010, 23:08     Расположить числа по возрастанию #19
А то что предложил Asics^ это же и есть метод пузырька?
Да,ето так.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2010, 23:23     Расположить числа по возрастанию
Еще ссылки по теме:

C++ Массив: расположить по возрастанию элементы второй строки.
C++ Дана последовательность расположить её положительные элементы стоящие на нечётных местах по возрастанию
Расположить три целых числа по возрастанию C++

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

Или воспользуйтесь поиском по форуму:
vvsh
6 / 6 / 0
Регистрация: 29.10.2009
Сообщений: 143
16.09.2010, 23:23  [ТС]     Расположить числа по возрастанию #20
а какие еще не сложные алгоритмы есть для сортировки (просто интересно), чтобы были применимы для больших массивов?
Yandex
Объявления
16.09.2010, 23:23     Расположить числа по возрастанию
Ответ Создать тему
Опции темы

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