Działania na dużych liczbach, przekraczających wszystkie zakresy>

0

Witam potrzebuje pomocy z tym oto zadaniem:
https://main2.edu.pl/c/konkurs-wstepu-do-programowania/p/duz/
napisałem to:

#include <iostream>
#include <string>
using namespace std;
bool czy_prawda(string a, string znaki, string b){
    int ac=a.size();
    int bc=b.size();
    if (ac>bc && znaki==">" || znaki==">=")
        return true;
    else return false;
    if (ac<bc && znaki=="<" || znaki=="<=")
        return true;
         else return false;
    if (bc>ac && znaki==">" || znaki==">=")
    return true;
     else return false;
    if (bc<ac && znaki=="<" || znaki=="<=")
        return true;
         else return false;
    if (a==b && znaki=="==")
        return true;
         else return false;
    if (a!=b && znaki=="!=")
    return true;
     else return false;
    for( int i=0;i<ac;i++)
      {if(a[i]>b[i]&&znaki==">" || znaki==">=")
       return true;
        else return false;
    if (a[1]<b[i]&&znaki=="<" || znaki=="<=")
        return true;
         else return false;}
}
int main() {
string a, znaki, b;
cin >> a >> znaki >> b;
cout << czy_prawda(a, znaki, b) << endl;
}

Nie działa on poprawnie niestety.

0

Ty tak poważnie? Piszesz ten kod lodówką? Bo normalne IDE od razu powie że masz kupe nieosiągalnego kodu. Spałeś na logice? Jesteś pewien że ten AND i OR się zachowają tak jak sobie wyobrażasz? Może nawias byłby potrzebny?

   if (ac>bc && znaki==">" || znaki==">=")
        return true;
    else return false;

nic więcej z tej funkcji się już nie wykona bo przecież albo warunek był prawdziwy i zwróciłeś true, albo nie był i zwróciłeś false. Geniusz.

0

W string masz metodę compare() zwracającą wartość < 0 ; 0 i > 0 w przypadku a .. może poczytaj.. http://www.cplusplus.com/reference/string/string/compare/

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