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
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";
#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;
}
}
Dzięki Varjo . Polecasz jakieś kursy itp.?
stefek812 napisał(a):
Dzięki Varjo . Polecasz jakieś kursy itp.?
Ja polecam:
*http://cpp0x.pl/kursy/Kurs-C++/1
*lub http://xion.org.pl/productions/texts/coding/megatutorial/
;)
Na pewno pierwszy wyżej wymieniony przez Min0sa jest bardzo dobry na początek, sam od niego zaczynałem ;)
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";
}
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
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 ?????
Tak ten porównuje tylko liczby, kod o który prosisz jest powyżej napisany przez _13th_Dragon
A da się ten program uprościć jakoś?
I jego program nie działa po wcisnieciu ENTER
#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;
}