Cześć, od dłuższego czasu męczę się już z operatorem '!=' bo ciągle nie działa tak, jakbym tego chciał, więc robię pewnie jakiś głupi błąd, proszę więc o pomoc.
Napisałem sobie taką małą funkcję
cout << "Wrzuc pieniadze ( W zlotowkach! ): ";
do
{
cin >> zlotowki;
if(zlotowki != z1 || zlotowki != z2 || zlotowki != z5)
{
cout << "Takich wartosci nie przyjmujemy!";
break; // to zeby zakonczyl prace programu
}
else
{
licznik = licznik + zlotowki;
cout << "Licznik jest rowny: " << licznik << endl;
}
}
while(licznik != wynik && licznik < wynik);
gdzie zmienne globalne są takie (niepotrzebne pominąć, wklejam tutaj wszystkie, wraz z tymi których używam w innych miejscach):
#include <iostream>
using namespace std;
double automat();
//----------------------
int wybor;
double reszta;
double wynik;
double zlotowki;
static double licznik;
//-----zlotowki
const double z1 = 1.00;
const double z2 = 2.00;
const double z5 = 5.00;
No i problem polega na tym, że gdy wpisuje zmienną 'zlotowki' to nie ważne, czy jest to 1, czy 3, czy 7 to i tak ciągle wyskakuje mi "takich wartosci nie przyjmujemy". A przecież chciałem, żeby to wyskakiwało tylko, gdy 'zlotowki' będą różne od 1, 2 lub 5 (
if(zlotowki != z1 || zlotowki != z2 || zlotowki != z5)
).
Co robię źle? Dodam jeszcze, że instrukcja
while(licznik != wynik && licznik < wynik);
działa tak jak chciałem.