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

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

Войти
Регистрация
Восстановить пароль
 
mikador
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 55
#1

if else - C++

22.09.2011, 10:26. Просмотров 763. Ответов 11
Метки нет (Все метки)

Даны три вещественных числа 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.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vlad_IT
1439 / 345 / 17
Регистрация: 03.04.2010
Сообщений: 2,095
22.09.2011, 10:30 #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";
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
22.09.2011, 10:37 #3
C++
1
double x, y, z;
2
Vlad_IT
1439 / 345 / 17
Регистрация: 03.04.2010
Сообщений: 2,095
22.09.2011, 12:16 #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";
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.09.2011, 01:29 #5
можно применить условное выражение
C++
1
cout << ((x < y && y < z) ? "Yes" : "No") << endl;
1
Vlad_IT
1439 / 345 / 17
Регистрация: 03.04.2010
Сообщений: 2,095
23.09.2011, 10:57 #6
accept, Еще логичнее. Только похоже автор похоже исчез куда-то.
0
-=ЮрА=-
Заблокирован
Автор FAQ
23.09.2011, 11:04 #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;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9633 / 5581 / 948
Регистрация: 25.07.2009
Сообщений: 10,715
23.09.2011, 14:42 #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;
}
0
-=ЮрА=-
23.09.2011, 15:55
  #9

Не по теме:

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

0
easybudda
23.09.2011, 16:01
  #10

Не по теме:

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

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

Не по теме:

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

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

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