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

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

Войти
Регистрация
Восстановить пароль
 
Cancion2able
7 / 7 / 0
Регистрация: 08.12.2012
Сообщений: 108
#1

Путаница в условном операторе - C++

15.12.2013, 12:59. Просмотров 247. Ответов 9
Метки нет (Все метки)

Задача:
Если сумма трех попарно различных действительных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из x и y полусуммой двух оставшихся значений.

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char* argv[])
{
        double x,y,z;
        if (x+y+z < 1) {
          if ((x<y) & (x<z)) {
          x = (y+z)/2;
          }
          else if ((y<x) & (y<z)) {
          y = (x+z)/2;
          } else z = (x+y)/2;
        }
        else if (x<y) {
        x = (y+z)/2;
        } else y = (x+z)/2;
 
        cout<<x;
        cout<<y;
        cout<<z;
 
        getch();
        return 0;
}
С результатом как-то не клеится, выводит "2.56091e+3032.53991e-3145.12181e+303". Поправьте, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 12:59     Путаница в условном операторе
Посмотрите здесь:

Ошибка в условном операторе - C++
Есть задача: создать класс, который бы имитировал стандартный тип данных int, но предупреждал о переполнении переменной (±2147483648). И...

Логическое выражение в условном операторе - C++
На поле (k, l) расположен слон. Угрожает ли он полю (m, n)?

Логическое выражение в условном операторе - C++
Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8: первое – номер вертикали, второе – номер...

Расстановка скобок в условном операторе - C++
Никак не могу понять где поставить скобки(begin end), чтобы если квадраты чисел равны не выводилось второе сообщение. #include...

Тип double в условном выражении - C++
Добрый день, вопрос про тип double в условном выражении. В книге Б. Страуструпа &quot;Язык программирования C++&quot; приведен пример в программе...

Путаница в операторах - C++
Что же возвращает 6-ая строка? BOOL String::Invariants() const { #ifdef SHOW_INVARIANTS cout &lt;&lt; &quot;Invariants Tested&quot; &lt;&lt; endl; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
15.12.2013, 13:02     Путаница в условном операторе #2
Cancion2able, не & a &&
Cancion2able
7 / 7 / 0
Регистрация: 08.12.2012
Сообщений: 108
15.12.2013, 13:05  [ТС]     Путаница в условном операторе #3
Цитата Сообщение от scenotaph Посмотреть сообщение
Cancion2able, не & a &&
Упс, дописывал строчку при правке и допустил такую ошибку. Изначально было 2 символа, результат тот же. Мб, у меня сам алгоритм неправильный, помогите, кто понимает.
S_el
2092 / 1599 / 306
Регистрация: 15.12.2013
Сообщений: 6,427
15.12.2013, 13:35     Путаница в условном операторе #4
Оно так и будет выводить.Ты не проинициализировал переменные.
Cancion2able
7 / 7 / 0
Регистрация: 08.12.2012
Сообщений: 108
15.12.2013, 13:42  [ТС]     Путаница в условном операторе #5
Цитата Сообщение от S_el Посмотреть сообщение
Оно так и будет выводить.Ты не проинициализировал переменные.
Спасибо, но я все равно сомневаюсь на счет правильности алгоритма. Получается, он на выходе выдает тоже самое, что и было введено.
S_el
2092 / 1599 / 306
Регистрация: 15.12.2013
Сообщений: 6,427
15.12.2013, 13:47     Путаница в условном операторе #6
В алгоритме тоже есть ошибка,в 12 строчке твой элсеиф не связан с условием сумма меньше 1.То есть независимо от этой суммы присваивание будет выполнятся.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,186
Завершенные тесты: 1
15.12.2013, 13:50     Путаница в условном операторе #7
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
int main(int argc, char* argv[])
{
        double x,y,z;
        cout<<"vvedite x:";
        cin>>x;
        cout<<"vvedite y:";
        cin>>y;
        cout<<"vvedite z:";
        cin>>z;
        if (x+y+z < 1) 
        {
              if ( x<y && x<z) 
                   x = (y+z)/2.;
              else if ( y<x  && y<z)
                   y = (x+z)/2.;
              else 
                   z = (x+y)/2.;
        }else if (x<y) 
                   x = (y+z)/2;
                else 
                   y = (x+z)/2;
         cout<<x<<" "<<y<<" "<<z<<endl;
         getch();
        return 0;
}
Ev_Hyper
Заблокирован
15.12.2013, 13:54     Путаница в условном операторе #8
А в случае равенства минимальных чисел что надо делать?
S_el
2092 / 1599 / 306
Регистрация: 15.12.2013
Сообщений: 6,427
15.12.2013, 13:59     Путаница в условном операторе #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(int argc, char* argv[])
{
        double x,y,z;
        cin>>x>>y>>z;
        if (x+y+z<1) 
        {
        if(x==y || x==z || y==z) cout<<"2 ulu 3 peremennye ravnu"<<endl;    
         else if (x<y && x<z) x = (y+z)/2;
         else if (y<x && y<z) y = (x+z)/2;
         else if (z<x && z<y)  z = (x+y)/2;
        }
        else 
        {
            if (x<y) x=(y+z)/2;
            else if(y<x) y=(x+z)/2;
        } 
 
        cout<<x<<" "<<y<<" "<<z<<endl;
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 14:02     Путаница в условном операторе
Еще ссылки по теме:

Путаница в массиве - C++
setlocale(LC_ALL, &quot;Russian&quot;); const int B = 11; int A; int index(-1); int count; cout &lt;&lt; &quot;\n\t***Оценки стундентов в...

путаница с указателями - C++
Люди, помогите, пожалуйста! Имеется двумерный динамический массив, объявленный и проинициализированный следующим образом: int i, j, n =...

Путаница с sftream и операторами << и >> - C++
Значит так, иду спокойно по книжке по темам &quot;Открытие и закрытие текстовых файлов&quot;, а также &quot;Чтение и запись текстовых файлов&quot; и тут я...

Путаница среди IDE - C++
Доброго времени суток, Я начинаю изучать С++, и первая проблема, с которой я столкнулся - большое количество разных IDE со...


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

Или воспользуйтесь поиском по форуму:
Cancion2able
7 / 7 / 0
Регистрация: 08.12.2012
Сообщений: 108
15.12.2013, 14:02  [ТС]     Путаница в условном операторе #10
Спасибо всем, товарищи! Разобрался
Yandex
Объявления
15.12.2013, 14:02     Путаница в условном операторе
Ответ Создать тему
Опции темы

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