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

if else - C++

Войти
Регистрация
Восстановить пароль
 
mikador
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 55
22.09.2011, 10:26     if else #1
Даны три вещественных числа x, y, z. Вывести "YES", если x<y<z, "NO" в других случаях.

Example:
Input:
3.1 4.1 5.1

Output
YES

Example:
Input:
5.2 4.1 1.0

Output
NO

оригинал
Given three real numbers x, y, z. Output "YES", if x<y<z. Output NO, otherwise.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vlad_IT
 Аватар для Vlad_IT
1437 / 343 / 16
Регистрация: 03.04.2010
Сообщений: 2,095
22.09.2011, 10:30     if else #2
Я не понимаю на инглыш. Но если понял так, то вот
C++
1
2
3
4
5
6
7
8
9
int x,y,z;
cout << "Enter x: ";
cin >> x;
cout << "Enter y: ";
cin >> y;
cout << "Enter z: ";
 
if(x < y && y < z) cout << "Yes";
else cout << "No";
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.09.2011, 10:37     if else #3
C++
1
double x, y, z;
Vlad_IT
 Аватар для Vlad_IT
1437 / 343 / 16
Регистрация: 03.04.2010
Сообщений: 2,095
22.09.2011, 12:16     if else #4
accept, Ах, да. Не внимательно посмотрел.
Тогда так.
C++
1
2
3
4
5
6
7
8
9
double x,y,z;
cout << "Enter x: ";
cin >> x;
cout << "Enter y: ";
cin >> y;
cout << "Enter z: ";
 
if(x < y && y < z) cout << "Yes";
else cout << "No";
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.09.2011, 01:29     if else #5
можно применить условное выражение
C++
1
cout << ((x < y && y < z) ? "Yes" : "No") << endl;
Vlad_IT
 Аватар для Vlad_IT
1437 / 343 / 16
Регистрация: 03.04.2010
Сообщений: 2,095
23.09.2011, 10:57     if else #6
accept, Еще логичнее. Только похоже автор похоже исчез куда-то.
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 11:04     if else #7
accept, думаю проще не проверять все 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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    double x,y,z;
    cout<<"Enter x : ";cin>>x;
    cout<<"Enter y : ";cin>>y;
    if(x < y)
    {
        cout<<"Enter z : ";cin>>z;
        if(y < z)
            cout<<"YES";
        else
            cout<<"NO\r\n";
    }
    else
        cout<<"NO\r\n";
        getch();
    return 0;
}
Добавлено через 1 минуту
А так вообще думаю полная лаконичность будет(в случае если у < x) выведем NO не дожидаясь ввода z...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
    double x,y,z;
    cout<<"Enter x : ";cin>>x;
    cout<<"Enter y : ";cin>>y;
    if(x < y)
    {
        cout<<"Enter z : ";cin>>z;
        if(y < z)
        {
            cout<<"YES";
                        getch();
            return 0;
        }
    }
    cout<<"NO\r\n";
        getch();
    return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
23.09.2011, 14:42     if else #8
И ещё немного быдлокода
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>
using namespace std;
 
bool get_values(double * arrPtr, size_t arrSize){
    for ( size_t i = 0; i < arrSize; ++i ){
        cout << "Value #" << ( i + 1 ) << ": ";
        if ( ! ( cin >> arrPtr[i] ) )
            return false;
    }
    return true;
}
 
bool test_middle(double a, double b, double c){
    return ( a < b ) ? ( b < c ) : false;
}
 
int main(){
    const size_t SIZE(3);
    double abc[SIZE];
    
    while ( get_values(abc, SIZE) )
        cout << ( test_middle(abc[0], abc[1], abc[2]) ? "YES" : "NO" ) << endl;
    
    return 0;
}
-=ЮрА=-
23.09.2011, 15:55
  #9

Не по теме:

easybudda, не слишком ли много кода для двух операторов сравнения, зачем столько всего???

easybudda
23.09.2011, 16:01
  #10

Не по теме:

-=ЮрА=-, наверное, за тем, что смешивать ввод и обработку данных - вообще-то не очень разумная затея. Источник данных поменяется, и хана всей песне...

-=ЮрА=-
23.09.2011, 16:18
  #11

Не по теме:

Цитата Сообщение от easybudda Посмотреть сообщение
смешивать ввод и обработку данных - вообще-то не очень разумная затея
- я больше вёл к тому что если нужно будет выполнить сравнение x1<x2<...<xn где n заоблачное число, то лучше прекратить ввод ещё i-й итерации, чем осуществлять полный ввод

easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
23.09.2011, 16:34     if else #12
-=ЮрА=-, ну, раз уж по заданию
Цитата Сообщение от mikador Посмотреть сообщение
Даны три вещественных числа
вопрос "кем даны?" (жёстко заданы в программе / прочитаны с клавиатуры / из файла) как-то актуальнее вопроса "точно три, не больше?"
Совсем другая задача "пока поступают данные в неограниченном количестве". Тут конечно стоило бы рубить, если очередная порция данных не проходит по какому-то критерию...
Yandex
Объявления
23.09.2011, 16:34     if else
Ответ Создать тему
Опции темы

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