Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zadanie Domowe 10

Ostatnio zmodyfikowano 2014-06-03 23:51
Autor Wiadomość
tabinsert
Temat założony przez niniejszego użytkownika
Zadanie Domowe 10
» 2014-06-03 23:17:19
Mam pewien problem próbowałem robić zadanie domowe nr. 10 i napisałem nastepujący kod

C/C++
#include <iostream>
using namespace std;
int main()
{
    int a, b;
   
    cout << " Podaj Liczbe 1 : ";
    cin >> a;
    cin.clear();
    cin.sync();
   
    cout << " Podaj Liczbe 2  : ";
    cin >> b;
    cin.clear();
    cin.sync();
   
    cout << " a+b= " << a += b << endl;
    return 0;
   
}



Lecz wyskakuje taki bład : kowite .cpp|17|error: invalid operands of types 'int' and '<unresolved overloaded function type>' to binary 'operator<<'|

Poczytałem troche i dowiedziałem się że poniższy kod po małej zmianie działa tylko zastanawia mnie dlaczego ten do góry nie działa

C/C++
#include <iostream>
using namespace std;
int main()
{
    int a, b;
   
    cout << " Podaj Liczbe 1 : ";
    cin >> a;
    cin.clear();
    cin.sync();
   
    cout << " Podaj Liczbe 2  : ";
    cin >> b;
    cin.clear();
    cin.sync();
   
    cout << " a+b= " << a + b << endl;
    return 0;
   
   
}

Tak i bedzie działać ale zastanawia mnie dlaczego tamten nie działa .
P-111385
czosnek17
» 2014-06-03 23:30:55
Chyba dlatego, że program nie bierze takiego dodawania jako całości i próbuje użyć złych operatorów, a wtedy kaszana. Wystarczy zrobić tak:
cout << " a+b= " <<( a += b ) << endl;
Wtedy a += b jest traktowane jako jedno wyrażenie i dopiero jego wynik tego działania jest przekazywany do operatorów <<
P-111386
rdh
» 2014-06-03 23:33:57
Popatrz na przedostatnią linijkę, w której wyświetlasz wynik. Niepotrzebnie przed znakiem dodawania jest "równa się". To chyba to ;)
P-111387
tabinsert
Temat założony przez niniejszego użytkownika
» 2014-06-03 23:36:07
A mam jeszcze jedno pytanie

C/C++
#include <iostream>
using namespace std;
int main()
{
    float a, b;
   
    cout << " Podaj Liczbe 1 : ";
    cin >> a;
    cin.clear();
    cin.sync();
   
    cout << " Podaj Liczbe 2  : ";
    cin >> b;
    cin.clear();
    cin.sync();
   
    cout << " a+b= " << a + b << endl;
    cout << " a-b= " << a - b << endl;
    cout << " a*b= " << a * b << endl;
    cout << " a/b= " << a / b << endl;
    cout << " a/b= " << a % b << endl << endl << endl;
    return 0;
   
   
}

I wyskakuje  bład : kowite .cpp|21|error: invalid operands of types 'float' and 'float' to binary 'operator%'|
co tutaj jest źle że nie moge działań na rzeczywistych przeprowadzić ?
P-111388
czosnek17
» 2014-06-03 23:41:18
Tak, na modulo tylko całkowite.
P-111389
rdh
» 2014-06-03 23:42:27
Znowu chodzi o przedostatnią linijkę. % o ile się nie mylę służy do wyliczania reszty, a ona występuje tylko przy liczbach całkowitych (int) a nie rzeczywistych (float). Swoją drogą dziwne, bo napis sugerowałby, że w tej linijce chciałbyś dzielić, po raz drugi, bo we wcześniejszej linijce też to robileś..
P-111390
tabinsert
Temat założony przez niniejszego użytkownika
» 2014-06-03 23:51:09
Już doszedłem do tego , tak masz racje ostatnia linijka ma błedny tekst wyświetlany który nie wpływa raczej na przebieg procesu , ale dziękuje za cenne rady zgodnie z cytatem Einsteina popełniaj błedy i wyciągaj znich lekcje dziękuje że pomogliście wyciągnąć mi lekcje.
P-111391
« 1 »
  Strona 1 z 1