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

Трабл с решением задания, условные операторы - C++

Восстановить пароль Регистрация
 
ИванИ
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 6
23.04.2014, 17:25     Трабл с решением задания, условные операторы #1
Здраствуйте, возникла определенная проблема при решении задания.
Полагаю, не суть, что за задание, проблема вот в чем:
В приведенном ниже алгоритме:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>          
#include <conio.h>
#include <math.h>
 
int main()
{   
    float x, y;         
    
 printf("\nx=");
 scanf("%f", &x);
 
    if(0.0<x<1.0) 
    {
    y=sqrt(1.0-((x-1.0)*(x-1.0)));
    
    if(x==1.0)
    y=1.0;
    if(x==0.0)
    y=0.0;
             
    }
             
    if(1.0<x<2.0)
    {
    y=1.0-(sqrt(1.0-((2.0-x)*(2.0-x))));
    if(x==2.0)
    y=0.0; 
    }
    
    
    if(2.0<x<3.0)
    {
    y=1.0-sqrt(1.0-((x-2.0)*(x-2.0)));
    if(x==3.0)
    y=1.0;
    }
                        
                        
    if(3.0<x<4.0)
    {
    y=sqrt(1.0-((x-3.0)*(x-3.0)));
    if(x==4.0)
    y=0.0;
                        
                        }
    if(4.0<x<5.0)
    {
    y=sqrt(1.0-((5.0-x)*(5.0-x)));                
    if(x==5.0)
    y=1.0;
    }
                        
                                        
    if(5.0<x<6.0)
    {
    y=1.0-sqrt(1.0-((6.0-x)*(6.0-x)));
    if(x==6.0)
    y=0.0;
    }  
 
    printf("\ny=%f", y);
 
    getch();
    return 0;
}
при вводе переменной "x" в интервале от 5 до 6 - программа работает замечательно. НО, казалось бы аналогичные команды других интервалов, дают результат "y" - что-то вроде y=-1#INDOO, какое бы значение не ввел в промежутке от 0 до 5. В чем же проблема?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 17:25     Трабл с решением задания, условные операторы
Посмотрите здесь:

Условные операторы.Операторы цикла C++
Условные операторы и массивы C++
C++ Условные операторы
C++ условные операторы
C++ Условные операторы
C++ Условные операторы цикла c++ Builder
С++.Операторы в С++: условные операторы, операторы break и continue C++
C++ Условные операторы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5947 / 5552 / 1784
Регистрация: 18.12.2011
Сообщений: 14,184
Завершенные тесты: 1
23.04.2014, 18:00     Трабл с решением задания, условные операторы #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от ИванИ Посмотреть сообщение
if(0.0<x<1.0)
Где это Вы такой синтаксис нашли
C++
1
if(0.0<x && x<1.0)
и так везде!

Цитата Сообщение от ИванИ Посмотреть сообщение
if(x==1.0)
Вы внутри верного условия x<1. КАК x может оказаться равным 1?

И, чтобы избежать ненужных проверок добавьте else перед всеми if (кроме первого).
ИванИ
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 6
24.04.2014, 04:14  [ТС]     Трабл с решением задания, условные операторы #3
Спасибо, все заработало как надо. А насчет такого синтаксиса - это потому, что я пока словно русский с разговорником иностранного языка зимбабве. Читал ведь в учебнике, что внутри функции If используется только логическая функция, но как-то сразу не легло. Теперь надолго запомню
Yandex
Объявления
24.04.2014, 04:14     Трабл с решением задания, условные операторы
Ответ Создать тему
Опции темы

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