Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
diman94x
5 / 5 / 2
Регистрация: 13.06.2009
Сообщений: 67
#1

упорядочивание по убыванию....

13.06.2009, 21:54. Просмотров 1016. Ответов 10
Метки нет (Все метки)

Здравствуйте, только начал знакомство с c++, попытался написать программу для упорядочивания 3 чисел в порядке убывания, но что-то не получается, мне кажется что дело в или в заголовке главной функции или в директивах, помогите!!!
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
#include <iostream>
using namespace std;
 
int main()
{
    int a;
    int b;
    int c;
    cout << "1 chislo:";
    cin >> a >> endl;
    cout << "2 chislo:";
    cin >> b >> endl;
    cout "3 chidlo:";
    cin >> c >> endl;
 
    if(a>b, b>c)
    {
        cout << a,b,c;
    };
    if(b>a, a>c)
    {
        cout << b,a,c;
    };
    if(c>b, b>a)
    {
        cout << c,b,a;
    };
    if(a>c, c>b)
    {
        cout << a,c,b;
    };
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2009, 21:54
Ответы с готовыми решениями:

Упорядочивание столбцов по убыванию характеристик
Характеристика столбца – максимум среди сумм цифр элементов. Знаю c#, а тут...

Упорядочивание всего массива по убыванию
Что нужно сделать чтобы упорядочить этот массив по убыванию? #include...

Список(List) как отсортировать по убыванию используя функции reverse(); sort(); ао убыванию
Нужно отсортировать список по убыванию используя функции reverse(); и sort();...

упорядочивание по алфавиту
как элементы структуры типа char упорядочить по алфавиту? О_о

Упорядочивание массивов
Здравствуйте, не знаю что делать, по этому пишу сюда. Задание звучит следующим...

10
stolyars
10 / 10 / 1
Регистрация: 24.12.2008
Сообщений: 32
13.06.2009, 22:22 #2
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
#include <iostream>
using namespace std;
 
int main()
{
        int a;
        int b;
        int c;
        cout << "1 chislo:";
        cin >> a ;
    cout << "2 chislo:";
        cin >> b ;
    cout <<"3 chidlo:";
        cin >> c;
 
        if(a>b&&b>c)
        {
                cout << a<<b<<c;
        }
        if(b>a&&a>c)
        {
                cout << b<<a<<c;
        }
        if(c>b&&b>a)
        {
                cout << c<<b<<a;
        }
        if(a>c&&c>b)
        {
                cout << a<<c<<b;
        }
        system("pause");
}
подправил синтаксис немного...с условиями сам ...
1
diman94x
5 / 5 / 2
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 22:26  [ТС] #3
спасибо)
0
Phantom
Эксперт С++
3170 / 852 / 39
Регистрация: 29.12.2008
Сообщений: 952
13.06.2009, 22:27 #4
Не вдаваясь в логику, скажу 3 ошибки:
1) при использовании cin не используется endl (перевод каретки на следующую строку).
C++
1
2
cin >> a >> endl; //неверно
cin >> a;  // верно
2) почитай про логические операторы. Как ты написал - так не пишется:
C++
1
2
if(c>b, b>a) //неправильно
if(c>b && b>a) //правильно
3) оператор cout при твоем использовании будет работать некорректно. Нужно полноценно форматировать вывод:
C++
1
2
cout << b,a,c; //неправильно
cout<<b<<' '<<a<<' '<<c<<endl; //правильно
Про логику скажу пару слов: как ты делаешь, нужно тогда предусмотреть все варианты (их больше чем четыре). А можно сделать легче, всего в три сравнения, подумай как.
И ссылочка полезная про ввод-вывод.
0
diman94x
5 / 5 / 2
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 22:32  [ТС] #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
using namespace std;
 
int main()
{
    int a;
    int b;
    int c;
    cout << "1 chislo:";
    cin >> a ;
    cout << "2 chislo:";
    cin >> b ;
    cout <<"3 chidlo:";
    cin >> c;
 
    if(a>b&&b>c)
    {
        cout << a<<b<<c;
    }
    if(b>a&&a>c)
    {
        cout << b<<a<<c;
    }
    if(c>b&&b>a)
    {
        cout << c<<b<<a;
    }
    if(a>c&&c>b)
    {
        cout << a<<c<<b;
    }
    if(a>c&&c>b)
    {
        cout << a<<c<<b;
    }
    if(c>a&&a>b)
    {
        cout << c<<a<<b;
    }
    if(b>c&&c>a)
    {
        cout << b<<c<<a;
    }
    cin.get();
    cin.get();
}
Можно ли как то покороче с условиями?
0
Phantom
Эксперт С++
3170 / 852 / 39
Регистрация: 29.12.2008
Сообщений: 952
13.06.2009, 22:49 #6
Можно покороче и без логических связок:
C++
1
2
3
4
5
6
7
8
9
10
        if (a>b) 
        if (a>c) 
            if (b>c) cout<<a<<b<<c;
            else cout<<a<<c<<b;
        else cout<<c<<a<<b;
    else
        if (a>c) cout<<b<<a<<c;
        else 
            if (b>c) cout<<b<<c<<a;
            else cout<<c<<b<<a;
Наверное можно ещё короче и проще, но сейчас что-то не думается.
0
diman94x
5 / 5 / 2
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 23:21  [ТС] #7
вот так вот еще:
C++
1
2
3
4
5
6
7
8
9
if (a>b)
if (b>c) cout <<a<<b<<c;
else cout <<a<<c<<b;
if (b>a)
if (a>c) cout <<b<<a<<c;
else cout <<b<<c<<a;
if (c>a)
if (a>b) cout <<c<<a<<b;
else cout <<c<<b<<a;
так пойдет??

Добавлено через 16 минут 10 секунд
В общем получилась вот такая вот программка у меня:
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
#include <iostream>
using namespace std;
 
int main()
{
  int a;
  int b;
  int c;
  cout << "1 chislo: ";
  cin >> a ;
  cout << "2 chislo: ";
  cin >> b ;
  cout <<"3 chislo: ";
  cin >> c;
  if (a>b)
{
  if (b>c)
{ 
cout <<a<<b<<c;
}
else
{
cout <<a<<c<<b;
}
if (b>a)
{
if (a>c)
{
cout <<b<<a<<c;
}
else
{
cout <<b<<c<<a;
}
if (c>a)
{
if (a>b)
{
cout <<c<<a<<b;
}
else
{
cout <<c<<b<<a;
}
cin.get();
cin.get();
}
0
Rififi
2363 / 1056 / 104
Регистрация: 03.05.2009
Сообщений: 2,656
13.06.2009, 23:26 #8
а вот ещё, мега-коротко
C++
1
2
3
4
5
6
#include <boost/lambda/lambda.hpp>
using namespace boost::lambda;
 
const int* p[] = {&a, &b, &c};
std::sort(p, p+3, *_1 < *_2);
std::for_each(p, p+3, std::cout << *_1 << " ");
0
diman94x
5 / 5 / 2
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 23:30  [ТС] #9
мне пока что до этого далеко
0
Search..
13.06.2009, 23:42
  #10

Не по теме:

Для меня это слишком трудно... Придется ждать Фундука, ыыы

0
Phantom
Эксперт С++
3170 / 852 / 39
Регистрация: 29.12.2008
Сообщений: 952
14.06.2009, 14:14 #11
Цитата Сообщение от Rififi Посмотреть сообщение
а вот ещё, мега-коротко ...
Круто, уважаю.
Можно так ещё (в качестве бреда)
C++
1
2
3
4
5
6
7
8
9
#define _(x,y,z) cout<<x<<y<<z
#define __(x) int x;cout<<"vvedite chislo: ";cin>>x;
#include <iostream>
using namespace std;
void main()
{
    __(a);__(b);__(c);
    (a>b)?(a>c)?(b>c)?_(a,b,c):_(a,c,b):_(c,a,b):(c>a)?(b>c)?_(b,c,a):_(c,b,a):_(b,a,c);
}
Кстати, есть ещё вариант, он не лучший, но весьма забавный, только что родилось.
Это решить задачу с помощью всего одного switch'a. Попробуйте в качестве разминки для ума.
0
14.06.2009, 14:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2009, 14:14

Упорядочивание массива
дан массив вещественных чисел требуется написать функции, которые 1....

Упорядочивание массива
Что не так?((( #include &lt;iostream&gt; using namespace std; int main() { ...

Упорядочивание матрицы
Ввести с клавиатуры квадратную матрицу из целых чисел размером M X M (M также...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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