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

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

Войти
Регистрация
Восстановить пароль
 
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
#1

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

13.06.2009, 21:54. Просмотров 923. Ответов 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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");
}
подправил синтаксис немного...с условиями сам ...
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 22:26  [ТС]     упорядочивание по убыванию.... #3
спасибо)
Phantom
Эксперт C++
 Аватар для Phantom
3161 / 843 / 15
Регистрация: 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; //правильно
Про логику скажу пару слов: как ты делаешь, нужно тогда предусмотреть все варианты (их больше чем четыре). А можно сделать легче, всего в три сравнения, подумай как.
И ссылочка полезная про ввод-вывод.
diman94x
5 / 5 / 1
Регистрация: 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();
}
Можно ли как то покороче с условиями?
Phantom
Эксперт C++
 Аватар для Phantom
3161 / 843 / 15
Регистрация: 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;
Наверное можно ещё короче и проще, но сейчас что-то не думается.
diman94x
5 / 5 / 1
Регистрация: 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();
}
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 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 << " ");
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
13.06.2009, 23:30  [ТС]     упорядочивание по убыванию.... #9
мне пока что до этого далеко
Search..
13.06.2009, 23:42
  #10

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2009, 14:14     упорядочивание по убыванию....
Еще ссылки по теме:

С++ упорядочивание массива C++
C++ Упорядочивание массивов
C++ Упорядочивание столбцов по убыванию характеристик
C++ Упорядочивание массива
Упорядочивание всего массива по убыванию C++

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

Или воспользуйтесь поиском по форуму:
Phantom
Эксперт C++
 Аватар для Phantom
3161 / 843 / 15
Регистрация: 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. Попробуйте в качестве разминки для ума.
Yandex
Объявления
14.06.2009, 14:14     упорядочивание по убыванию....
Ответ Создать тему
Опции темы

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