Что не так в коде (заранее спасибо)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by u4iteor, 30 Nov 2010.

  1. u4iteor

    u4iteor Member

    Joined:
    14 Feb 2010
    Messages:
    0
    Likes Received:
    8
    Reputations:
    0
    Привет всем.
    Вот код(С++):
    Почему строка cout << "c rovno" << c << endl;
    не обрабатывается?
    То есть что сделать, что бы
    PHP:
    if (c=(a-b))
        
    cout << "c rovno" << << endl;
    это выполнялось.
    Спасибо.
     
  2. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    :D
    просто нужно написать вот так:
    Code:
     if (c=(a-b))   
        cout << "c rovno" << c;
    
    :D
     
  3. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Убери в конце endl =)
     
  4. u4iteor

    u4iteor Member

    Joined:
    14 Feb 2010
    Messages:
    0
    Likes Received:
    8
    Reputations:
    0
    Помогите, пожалуйста.
     
  5. u4iteor

    u4iteor Member

    Joined:
    14 Feb 2010
    Messages:
    0
    Likes Received:
    8
    Reputations:
    0
    Спасибо большое=)
     
  6. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Ну ты хоть бы ошибку написал, на чем компилил...
    ps у меня все компилится=)
     
  7. u4iteor

    u4iteor Member

    Joined:
    14 Feb 2010
    Messages:
    0
    Likes Received:
    8
    Reputations:
    0
    Да у меня тоже все компилится, просто "c rovno0" не выводится на экран. (пустой экран)
    спасибо всем за помощь
     
  8. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Ну напиши вместо
    Code:
    cout << "c rovno" << c;
    это
    Code:
    printf("c rovno %d",c);
     
  9. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    a = 1; b = 1;
    c = ?(в debug версии будет 0, в release версии мусор)

    c = (a-b) = 0 == false - вот почему не выполнялся вывод
     
  10. Jakeroid

    Jakeroid Member

    Joined:
    9 May 2009
    Messages:
    198
    Likes Received:
    12
    Reputations:
    1
    Ты пишешь
    if(c=(a-b)), но ты понимаешь что это значит? Я думаю нет.
    оператор if проверяет выражение на истинность, то есть например
    if( 3 == 10) - ложь
    if( 3 == 3) - истина
    НО! Кроме этого, ты не ставишь знака тождества внутри скобок. Ты не сравниваешь выражения, а просто присваиваешь "с" значение "а-b". Что может решить if, если у него не спрашивают "равны ли эти выражения"?
    Пример программы:
    Code:
    ...
    int a = 10, b = 6, c = 4;
    if( c == (a-b) )
    {
    cout << "C =" << c;
    ....
    }
    
    ....