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

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

Войти
Регистрация
Восстановить пароль
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
#1

не могу понять что с выводом - C++

21.09.2012, 15:27. Просмотров 413. Ответов 9
Метки нет (Все метки)

помогите найти косяк,у меня при отрицательном "a" он выдаёт результат и "error" хотя должен только "error" таже проблема если b=0 a>0
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 <stdafx.h>
#include <iostream>
 
using namespace std;
int main()
{
    double a,b;
    cout<<"VVedite a and b";
    cin>>a>>b;
    if (b>=a && a>0)
        cout<<sin(a)+cos(b)<<endl;
    else
    {
        if (b<a && b==0)
            cout<<"error"<<endl;
        else
            cout<<(a+b)/b*b-a;
        if (b>=a && a<=0 && 3*a+b<0)
            cout<<"error"<<endl;
        else
            cout<<sqrt(3*a+b)<<endl;
    }
    system("pause");
    return 0;
}
потом когда у меня a=0 и b<0 выдаёт непонятно чего так же если оба 0
Миниатюры
не могу понять что с выводом  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2012, 15:27     не могу понять что с выводом
Посмотрите здесь:

что не верно? не могу понять. - C++
программа должна оборачивать каждое слово в предложении. (например &quot;пришел&quot;, а выведет &quot;леширп&quot;) #include &quot;stdio.h&quot; #include...

не могу понять что не так((((( - C++
привет всем! у меня проблемка возникла компиятор никак не проглатывает мой код #include &lt;iostream&gt; using namespace std; int main() ...

Не могу понять, что это значит: while(i<10/2) - C++
/*обращение массива*/ #include &lt;stdio.h&gt; main() { int p,i=0; static a={10,11,12,13,14, 15,16,17,18,19}; while(i&lt;10/2) { ...

Не могу понять, что неправильно с float - C++
Всем здравствия. Прошу прощения за глупый вопрос, но споткнулся на ровном, и не могу понять, что не так. int vsego = 282; int...

Что-то с циклом в программе не могу понять - C++
в принципе, функция выделяет в новый массив слов все повторяющиеся слова из старого, но я закоментировал, это, так как у меня почему то не...

Не могу понять на что ругается компилятор - C++
Задание такое: Нужно написать программу для обработки информации о предлагаемых к продаже автомобилей. Информация включает следующие...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
serejkus
47 / 45 / 4
Регистрация: 31.10.2011
Сообщений: 98
21.09.2012, 15:48     не могу понять что с выводом #2
У вас получается следующий код:
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
#include <stdafx.h>
#include <iostream>
 
using namespace std;
int main()
{
    double a,b;
    cout<<"VVedite a and b";
    cin>>a>>b;
    if (b>=a && a>0)
        cout<<sin(a)+cos(b)<<endl;
    else
    {
        if (b<a && b==0) {
            cout<<"error"<<endl;
        } else {
            cout<<(a+b)/b*b-a;
        }
 
        if (b>=a && a<=0 && 3*a+b<0) {
            cout<<"error"<<endl;
        } else {
            cout<<sqrt(3*a+b)<<endl;
        }
    }
    system("pause");
    return 0;
}
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
21.09.2012, 16:21  [ТС]     не могу понять что с выводом #3
всё также
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,494
Записей в блоге: 4
21.09.2012, 16:30     не могу понять что с выводом #4
serejkus, проверьте логику:
Цитата Сообщение от serejkus Посмотреть сообщение
У вас получается следующий код:
C++
1
2
3
4
5
6
7
        if (b>=a && a<=0 && 3*a+b<0)//вот тут сработает если все истинны потому что && это И, то есть если подкоренное  выражение отрицательно, 
//скажем а остальные не выполнены, - будем извлекать корень из отрицательного числа :)
 {
            cout<<"error"<<endl;
        } else {
            cout<<sqrt(3*a+b)<<endl;
}
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
21.09.2012, 16:31     не могу понять что с выводом #5
if-else правь.
C++
1
2
3
4
5
6
7
8
        if (b<a && b==0)
            cout<<"error"<<endl;//выполнится или это
        else
            cout<<(a+b)/b*b-a;//или это
        if (b>=a && a<=0 && 3*a+b<0)
            cout<<"error"<<endl;//а потом выполнится еще и это
        else
            cout<<sqrt(3*a+b)<<endl;//или это. итого - 2 выполнения вместо одного
Если не прав - распиши, что за результат ты хочешь получить
vitaska
84 / 84 / 2
Регистрация: 04.02.2010
Сообщений: 162
21.09.2012, 16:51     не могу понять что с выводом #6
3*a+b - отрицательное значение судя по скрину, нужно еще проверку добавить на подкоренное выражения
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6444 / 3083 / 306
Регистрация: 04.12.2011
Сообщений: 8,494
Записей в блоге: 4
21.09.2012, 16:56     не могу понять что с выводом #7
Цитата Сообщение от IGPIGP Посмотреть сообщение
serejkus, проверьте логику:
serejkus, простите, реплика относится к SKS-65. Цитировал из Вашего поста, вот имя и скопипастил.
SKS-65, нужно использовать || OR (ИЛИ), что бы ни одно не выполнилось.
Почему, например, не оставить if((3*a+b)<0) - это полностью обезопасит корень?
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
21.09.2012, 17:45  [ТС]     не могу понять что с выводом #8
Цитата Сообщение от I.M. Посмотреть сообщение
Если не прав - распиши, что за результат ты хочешь получить
мне нужно чтобы при b>=a и a>0 он мне считал sin(a)+cos(b) при b>=a и a<=0 корень из 3a+b а при b>0 (a+b)/b*b-a
vitaska
84 / 84 / 2
Регистрация: 04.02.2010
Сообщений: 162
22.09.2012, 15:02     не могу понять что с выводом #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
int main()
{
    double a, b;
    cout << "VVedite a and b";
    cin >> a >> b;
    if (b >= a){
       if(a > 0)
         cout << sin(a) + cos(b) << endl;
       else if(a <= 0 && (3 * a + b) > 0)
               cout << sqrt(3 * a + b) << endl;
            else
               cout<<"error"<<endl;
    };
    if (b > 0)
       cout << (a + b) / b * b - a << endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.09.2012, 00:00     не могу понять что с выводом
Еще ссылки по теме:

Не могу понять что делает функциия - C++
map&lt;char,int&gt; next; int &amp;get (char c) { if (!next.count(c)) next = -1; return next; } И можно ли будет заменить его...

Никак не могу понять что это - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); double chocolate, cofe, milk; cout &lt;&lt;...

Не могу понять, что не так в коде - C++
Целый день маюсь с этой прогой и ничё не выходит. #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; int main() { ...

Обьясните что не так не могу понять - C++
программа должна менять цвет bmp файла но при запуске выдает ошибку что 2 неразрешимых внешних элемента есть и все я пробовал разобраться...


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

Или воспользуйтесь поиском по форуму:
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
23.09.2012, 00:00  [ТС]     не могу понять что с выводом #10
vitaska, не так тоже не совсем правильно считает,я вот так решил сделать,может немного банально,но вс работает как надо
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
#include <stdafx.h>
#include <iostream>
 
using namespace std;
int main()
{
    double a,b,k;
    cout<<"VVedite a and b";
    cin>>a>>b;
    if (b>=a && a>0)
        k=0;
    else
    {
        if (b>=a && a<=0)
            k=1;
        else
        {
            if (b<a && a>0 || b<a && a<=0)
                k=2;
        }
    }
        if (k!=1 && k!=2)
            cout<<sin(a)+cos(b)<<endl;
        if (k!=0 && k!=2 && (3*a+b)>=0)
            cout<<sqrt(3*a+b)<<endl;
        if (k!=0 && k!=2 && (3*a+b)<0)
            cout<<"error"<<endl;
        if (k!=0 && k!=1 && b!=0)
            cout<<(a+b)/b*b-a<<endl;
        if (k!=0 && k!=1 && b==0)
            cout<<"error"<<endl;
    
    system("pause");
    return 0;
}
Yandex
Объявления
23.09.2012, 00:00     не могу понять что с выводом
Ответ Создать тему
Опции темы

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