Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 18:49   #1
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию Функция if

Здравствуйте дорогие форумчяни.Решил написать программу определяющий последовательность чисел по порядку возрастания .

Код:
#include <cstdlib>
#include <iostream>

using namespace std;
int main()
{
    double a,b,c;
    cout << "vvedite 4islo 1";
    cin >>  a;
    cout << " vvedite 4islo 2 ";
    cin >> b ;
    cout <<"vvedite 4islo 3";
    cin >> c;
    if (a <= b <= c) {
    cout << a << b << c ;
     }
    if (a<=b<=c){
    cout << c << b << a ;  
    }
    if  (b<=a<=c ){
    cout << b<< a<< c ;
    }
    if (b<=c<=a){
    cout << b << c << a; 
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
Программа работает не так как я хотел , вместо определения порядка возрастания она выводит все возможные порядки чисел . Кого не затруднить помогите!
............Сила воли ключ идеальности...........

Последний раз редактировалось Stilet; 28.09.2011 в 20:49.
jasul вне форума Ответить с цитированием
Старый 28.09.2011, 20:31   #2
iCaesy
In progress...
Форумчанин
 
Регистрация: 25.09.2011
Сообщений: 161
По умолчанию

Напиши точное задание.
Выставить 3 введенные числа по порядку возрастания ?
iCaesy вне форума Ответить с цитированием
Старый 28.09.2011, 20:33   #3
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от jasul Посмотреть сообщение
Здравствуйте дорогие форумчяни.Решил написать программу определяющий последовательность чисел по порядку возрастания .

#include <cstdlib>
#include <iostream>

using namespace std;
int main()
{
double a,b,c;
cout << "vvedite 4islo 1";
cin >> a;
cout << " vvedite 4islo 2 ";
cin >> b ;
cout <<"vvedite 4islo 3";
cin >> c;
if (a <= b <= c) {
cout << a << b << c ;
}
if (a<=b<=c){
cout << c << b << a ;
}
if (b<=a<=c ){
cout << b<< a<< c ;
}
if (b<=c<=a){
cout << b << c << a;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Привет! Что то вы не то делаете! Почему у вас два одинаковых условия
Код:
    if (a <= b <= c) 
    {
        cout << a << b << c ;
     }
    if (a<=b<=c)
    {
        cout << c << b << a ;  
    }
Лучше сделать вот так:
Код:
if ((a>=b) && (b>=c))
{
   cout<< a << b << c;
}
if ((a>=c) && (c>=b))
{
   cout<< a << c << b;
}
Делай на подобии, в С++ я не так силен!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 21:56   #4
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от iCaesy Посмотреть сообщение
Напиши точное задание.
Выставить 3 введенные числа по порядку возрастания ?
ДА))) именно так!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 28.09.2011, 22:06   #5
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от ByAlex Посмотреть сообщение
Привет! Что то вы не то делаете! Почему у вас два одинаковых условия
Код:
    if (a <= b <= c) 
    {
        cout << a << b << c ;
     }
    if (a<=b<=c)
    {
        cout << c << b << a ;  
    }
Лучше сделать вот так:
Код:
if ((a>=b) && (b>=c))
{
   cout<< a << b << c;
}
if ((a>=c) && (c>=b))
{
   cout<< a << c << b;
}
Делай на подобии, в С++ я не так силен!
Огромное спасибо!!!! Программа заработала!!!! Вот только один вопрос Формула if (a<b<c) ne rabo4aia????
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 28.09.2011, 22:56   #6
ByAlex
Форумчанин
 
Аватар для ByAlex
 
Регистрация: 15.03.2011
Сообщений: 465
По умолчанию

Цитата:
Сообщение от jasul Посмотреть сообщение
Огромное спасибо!!!! Программа заработала!!!! Вот только один вопрос Формула if (a<b<c) ne rabo4aia????
Не знаю точно, я так не пробовал!
Помог - жми на весы!
ByAlex89@mail.ru
ByAlex вне форума Ответить с цитированием
Старый 28.09.2011, 23:49   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Огромное спасибо!!!! Программа заработала!!!! Вот только один вопрос Формула if (a<b<c) ne rabo4aia????
Честно скажу, не знаю, можно ли так писать в C++/c, но скажу вот что
1. По-моему, она не работала из-за того, что в логическом выражении появлялись "неожиданные" значения. То есть, при записи такого выражения, предполагалась формулировка "b больше a, но меньше c", однако, как мне кажется, вычисления этого выражения происходило совершенно по-другому - сравнивались a и b, после чего РЕЗУЛЬТАТ этого сравнения (истина или ложь, в c++ они могут обозначаться как 1 или 0 соответственно), сравнивался с переменной c, тем самым приводя не к тем результатам, которых ожидали от работы такой программы.

Независимо от того, верно ли выше мною написанное или нет, я рекомендую в подобных случаях связывать атомарные операции сравнения логическими операторами, в данном случае это будет выглядеть так:
Код:
 if ( (a < b)&& (b < c) )
Вадим Мошев вне форума Ответить с цитированием
Старый 29.09.2011, 12:23   #8
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Честно скажу, не знаю, можно ли так писать в C++/c, но скажу вот что
1. По-моему, она не работала из-за того, что в логическом выражении появлялись "неожиданные" значения. То есть, при записи такого выражения, предполагалась формулировка "b больше a, но меньше c", однако, как мне кажется, вычисления этого выражения происходило совершенно по-другому - сравнивались a и b, после чего РЕЗУЛЬТАТ этого сравнения (истина или ложь, в c++ они могут обозначаться как 1 или 0 соответственно), сравнивался с переменной c, тем самым приводя не к тем результатам, которых ожидали от работы такой программы.

Независимо от того, верно ли выше мною написанное или нет, я рекомендую в подобных случаях связывать атомарные операции сравнения логическими операторами, в данном случае это будет выглядеть так:
Код:
 if ( (a < b)&& (b < c) )
Благодарю Вадим!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция KuckaMAXHATKA Общие вопросы C/C++ 1 22.02.2011 01:00
Функция revaldo666 Общие вопросы C/C++ 2 09.02.2011 19:21
Функция Alexsey1991 Помощь студентам 2 24.04.2010 21:09
функция Lemo Помощь студентам 7 24.10.2008 12:54
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50