Program sprawdzający, czy wprowadzona liczba jest dodatnia/ujemna nie działa prawidłowo.
Ostatnio zmodyfikowano 2014-11-01 13:06
kolo818 Temat założony przez niniejszego użytkownika |
Program sprawdzający, czy wprowadzona liczba jest dodatnia/ujemna nie działa prawidłowo. » 2014-10-31 16:20:03 Witam. Do szkoły piszę program, którego zadaniem jest odpowiedzenie, czy wprowadzona liczba jest dodatnia, czy ujemna. Kod wygląda następująco:
#include <iostream> using namespace std; int main(){ int w=0,x,y,z=0; do{ cout<<"Wprowadz liczbe:"<<endl; cin>>x; if(x>0) cout<<"Liczba ta jest dodatnia"<<endl; if(x=0) cout<<"Liczba ta nie jest ani dodatnia, ani ujemna"<<endl; if(x<0) cout<<"Liczba ta jest ujemna"<<endl;
do{ z = 0; cout<<"Czy chcesz sprawdzic jeszcze jedna liczbe?\n"<< "[0] Nie\n"<<"[1] Tak: "; cin>>y; if(y=1){w++;} if(y=0){cout<<"Do widzenia!"; z++; w++;} if(y!=0 && y!=1) {cout<<"Nie rozpoznano polecenia. Sprobuj ponownie."<<endl;} }while(w != 1);
}while(z != 1); system("Pause"); return 0; }
Jest tutaj jednak jakiś błąd, program się kompiluje, ale nie działa tak jak planowałem, by działał. |
|
Hipochondryk |
» 2014-10-31 16:42:33 "..czy wprowadzona liczba jest parzysta, czy nie parzysta" A kod programu sprawdza czy jest to liczba dodania lub ujemna. Nie potrzebnie zagnieżdżasz pętle.
if(y=1){w++;} if(y=0){cout<<"Do widzenia!";
Tutaj masz błąd. operator = to operator przypisania. Operatorem porównania jest operator == |
|
kolo818 Temat założony przez niniejszego użytkownika |
Dziękuję! » 2014-10-31 17:40:41 Wiem.. popełniłem błąd w treści poprzedniego postu- nie chodziło o to, czy liczba jest parzysta, czy nie, tylko czy jest dodatnia, czy nie. Udało mi się poprawić kilka rzeczy i ostatecznie powstał mi taki oto programik:
#include <iostream> using namespace std; bool dodatnia(int x){ if(x>0) return true; else return false; } bool neutralna(int x){ if(x=0) return false; else return true; } bool ujemna(int x){ if(x<0) return true; else return false; }
int main(){ int w=0,x,y,z=0; do{ cout<<"Wprowadz liczbe:"<<endl; cin>>x; if(dodatnia(x) == true) cout<<"Liczba ta jest dodatnia"<<endl; else{ if(ujemna(x) == true) cout<<"Liczba ta jest ujemna"<<endl; else{ if(neutralna(x) == true) {cout<<"Liczba ta nie jest dodatnia ani nie jest ujemna"<<endl;} else cout<<"Błąd programu."<<endl; } }
do{ w = 0; z = 0; cout<<"Czy chcesz sprawdzic jeszcze jedna liczbe?\n"<< "[1] Nie\n"<<"[2] Tak: "; cin>>y; switch(y) { case 2: w++; break; case 1: cout<<"Do widzenia!\n"; z++; w++; break; default: cout<<"Sprobuj jeszcze raz. Nie rozpoznalem komendy."<<endl; break; } }while(w != 1); }while(z != 1); system("Pause"); return 0; } |
|
Mateus. |
» 2014-10-31 17:47:35 Wstawiaj kod w znaczniki na przyszłość. |
|
Hipochondryk |
» 2014-10-31 18:52:51 a nie łatwiej by było : int main() { int x; while( 1 ) { cout << "podaj x: "; cin >> x; if( x > 0 ) cout << "dodatnia"; else if( x < 0 ) cout << "ujemna"; else cout << x; cout << "chcesz powtórzyć ? [1]tak 0[nie]"; cin >> x; if( x ) continue; else break; } }
pisane na szybko ale powinno działać. |
|
Memento96 |
» 2014-10-31 19:05:49 @up cin >> x; a nie cin x; :) i nie dodania a dodatnia ;P |
|
Hipochondryk |
» 2014-10-31 19:13:50 czepiasz się:) każdy wie o co chodzi :) |
|
kolo818 Temat założony przez niniejszego użytkownika |
Dzieki! » 2014-11-01 13:06:19 Dopiero raczkuje w C++, mam 14 lat i moj poziom jest... niewazne :P. Temat uwazam za zamkniety, do zobaczenia! |
|
« 1 » |