Porównywanie liczb c++

0

Cześć jestem początkujący i mam do napisania program który porównuje liczby.Chodzi o to że na Wejściu mamy dwie liczby a po między nimi znak : <,<=,>,>=,!=,== czyli np wpisuje : 6>7 i program ma mi wyświetlić TAK lub NIE w zależnosci czy jest to prawda czy fałsz.Kompletnie nie wiem jak to zrobic!!!
Albo Wejście:
999>=2000
Wyjście
NIE

0

Poczytaj o konstrukcji if i polecam jakiś poradnik dla początkujących. I abym nie był gołosłowny przykład

if(liczba1 >= liczba2 )
       cout<<"TAK";
else
       cout<<"NIE";
0
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
  {
   static const struct { const char *name; bool (*fun)(double,double); } tb[]=
     {
        { "<", [](double a,double b) { return a<b; } },
        { ">", [](double a,double b) { return a>b; } },
        { "<=", [](double a,double b) { return a<=b; } },
        { ">=", [](double a,double b) { return a>=b; } },
        { "==", [](double a,double b) { return a==b; } },
        { "!=", [](double a,double b) { return a!=b; } },
     };
   static const char *msg[]={"NIE","TAK"};
   while(true)
     {
      cout<< "Wprowadz dzialanie (!-koniec): ";
      string op;
      double a,b;
      if(!(cin>>a>>op>>b)) return 0;
      for(size_t i=0;i<sizeof(tb)/sizeof(*tb);++i)
        {
         if(op==tb[i].name) 
           {
            cout<<msg[tb[i].fun(a,b)]<<endl;
            op.resize(0);
            break;
           }
        }
      if(!op.size()) cout<<"Niepoprawne porównanie"<<endl;
     }    
  }
0

Dzięki Varjo . Polecasz jakieś kursy itp.?

1

Na pewno pierwszy wyżej wymieniony przez Min0sa jest bardzo dobry na początek, sam od niego zaczynałem ;)

0

Napisałem coś takiego ale nie działa

#include <iostream>
using namespace std;

int main(){
int a;
int b;
cin >> a >> b;
if(a >= b )
cout<<"TAK";
else if (a<=b)
cout<<"NIE";

}

0

Używaj znaczników kodu:

#include <iostream>
using namespace std;

int main(){
    int a;
    int b;
    cin >> a >> b;
    if(a >= b ) //jeżeli liczba jest większa lub równa to wypisze TAK
        cout<<"TAK";
    else //jeżeli warunek powyższy jest nieprawdziwy to wypisze NIE, nie ma sensu pisać else if(a<=b)
       cout<<"NIE";
   system("pause"); //stopuje Ci działanie programu do naciśnięcia dowolnego klawisza
   return 0;
}

Przeanalizuj komentarze

0

Ok. Ale chyba ten program nie czyta znaku między liczbami gdy wpisuje 5>9 ma on psrawdzic czy to prawda czy fałsz i tak samo dla znaków <,<=,>,>=,!=,==. A on porównuje same liczby . Tak mi sie przynajmniej wydaje ?????

0

Tak ten porównuje tylko liczby, kod o który prosisz jest powyżej napisany przez _13th_Dragon

0

A da się ten program uprościć jakoś?

0

I jego program nie działa po wcisnieciu ENTER

1
#include <iostream>
int main()
  {
      float a, b;
      char c;
    std::cout<< "Sprawdz: ";
    std::cin >> a>>c>>b;
    if (c=='>') {
        if (a>b) 
            std::cout<< "Prawda";
        else 
            std::cout<< "Falsz";
    }
    else if (c=='<') {
        if (a<b)
            std::cout<< "Prawda";
        else 
            std::cout<< "Falsz";
    }
    else if (c=='<=') {
        if (a<=b)
            std::cout<< "Prawda";
        else 
            std::cout<< "Falsz";
    }
       else if (c=='>=') {
        if (a>=b)
            std::cout<< "Prawda";
        else
            std::cout<< "Falsz";
    }
       else if (c=='!') {
        if (a!=b)
            std::cout<< "Prawda";
        else
            std::cout<< "Falsz";
    }
    return 0;
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1