Poziom 1 Lekcja 10, operacje matematyczne
Ostatnio zmodyfikowano 2015-10-13 15:14
gucio6 Temat założony przez niniejszego użytkownika |
Poziom 1 Lekcja 10, operacje matematyczne » 2015-08-09 19:18:27 Siemka, mam problem z wykonaniem 1.wszego "zadania domowego" po tym temacie. Nie umiem po prsotu wstawić reszty z dzielenia. oto mój kod: (btw. 2gie zadanie zrobiłem w 30 sekund, miałem inny kod, znacznie prościej napisany ale usunąłem ;/) #include <iostream> #include <math.h>
using namespace std;
int main() { int liczba, liczba1, liczba2; cout << "Podaj 1 liczbe: "; cin >> liczba1; cout << "podaj 2 liczbe:"; cin >> liczba2; liczba = liczba1 + liczba2; cout << "a + b = " << liczba << endl; liczba = liczba1 - liczba2; cout << "a - b = " << liczba << endl; liczba = liczba1 * liczba2; cout << "a * b = " << liczba << endl; liczba = liczba1 / liczba2; cout << "a / b = " << liczba << endl; liczba %= liczba; cout << "a % b = " << liczba << endl; cin.get(); cin.get(); return 0; } |
|
carlosmay |
» 2015-08-09 19:36:17 liczba = liczba1 % liczba2
Liczba nie jest zainicjalizowana i dzielisz ją operatorem przez liczba2. Wychodzą czary lub kompilator się burzy. Dzielenie modulo wykonuje się jak każde inne działanie matematyczne. |
|
gucio6 Temat założony przez niniejszego użytkownika |
» 2015-08-09 19:42:30 w sumie racja, nie pomyslałem o tym... btw. pojawia się kolejny problem ^^ jeżeli przy definiowaniu zmiennych użyje float nie mogę debugować ani skompilować kodu, jednak gdy dam np. int lub double to mogę skompilować jednak reszta wychodzi jako 1 a nie 1,25 jak w lekcji 1. Czym to się różni :v? |
|
Cansisti |
» 2015-08-09 19:44:48 Po float musisz dodać literkę f żeby kompilator odróżnił ją od double (teoretycznie powinno mimo to przejść ale niektóre kompilatory są nieprzyjazne) np. float x = 1.25f (Przy czym nie wiem jak to się ma do cin, możesz ewentualnie pobrać jako double i rzutować na float) |
|
carlosmay |
» 2015-08-09 19:53:41 I jeszcze dochodzi modulo które działa tylko ze zmiennymi całkowitymi. Zabezpieczaj program przed dzieleniem przez zero. Edit: jak dzielisz dwie liczby float |
|
gucio6 Temat założony przez niniejszego użytkownika |
» 2015-08-09 20:42:16 Hmmm nie rozumiem ^^ <jestem początkującym>. Przy tym kodzie, program się nie uruchamia. Natomiast jeżeli zmienie float na np. "int" wszystko działa dobrze, jednak reszta pokazuje się błędna ;/ #include <iostream> #include <math.h>
using namespace std;
int main() { float liczba, liczba1, liczba2; cout << "Podaj 1 liczbe: "; cin >> liczba1; cout << "podaj 2 liczbe:"; cin >> liczba2; liczba = liczba1 + liczba2; cout << "a + b = " << liczba << endl; liczba = liczba1 - liczba2; cout << "a - b = " << liczba << endl; liczba = liczba1 * liczba2; cout << "a * b = " << liczba << endl; liczba = liczba1 / liczba2; cout << "a / b = " << liczba << endl; liczba = liczba1 % liczba2; cout << "a % b = " << liczba << endl; cin.get(); cin.get(); return 0; } |
|
Cansisti |
» 2015-08-09 20:46:42 Jak napisał kolega wyżej nie możesz użyć modulo (reszty z dzielenia - %) z float, bo nie istnieje reszta z dzielenia z przecinkiem (mija się z celem :P ). Nie mam pojęcia dlaczego działa z double, nie powinno. |
|
pekfos |
» 2015-08-09 20:52:34 bo nie istnieje reszta z dzielenia z przecinkiem |
Ale istnieje funkcja fmod(), która ją liczy. |
|
« 1 » 2 3 |