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

Program sprawdzający, czy wprowadzona liczba jest dodatnia/ujemna nie działa prawidłowo.

Ostatnio zmodyfikowano 2014-11-01 13:06
Autor Wiadomość
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ł.
P-119736
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 ==
P-119737
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;
}
P-119741
Mateus.
» 2014-10-31 17:47:35
Wstawiaj kod w znaczniki na przyszłość.
P-119742
Hipochondryk
» 2014-10-31 18:52:51
a nie łatwiej by było :

C/C++
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ć.
P-119746
Memento96
» 2014-10-31 19:05:49
@up
cin >> x;
a nie cin x;
:)
i nie dodania a dodatnia ;P
P-119749
Hipochondryk
» 2014-10-31 19:13:50
czepiasz się:) każdy wie o co chodzi :)
P-119750
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!
P-119794
« 1 »
  Strona 1 z 1