Here's the problem (i know it's really easy "it's for beginners")

You will be given two numbers X and Y and you will have to define the relation between them. It can be one of the following relations :

  • X greater than Y.

  • X smaller than Y.

  • X equals Y.

and that's my solution

include <iostream>

using namespace std;

int main()
{
    int X;
    int Y;

        cin >> X;
        cin >> Y;
if ( X> -10^12 && Y<10^12) {

       if (X>Y)
        cout << ">" <<endl;
       else if (X<Y)
        cout << "<" << endl;
        else if (X=Y)
            cout << "=" << endl;
}
   return 0;
}

now what's wrong? it can't be accepted on Codeforces

#include <iostream>

int main()
{
    int x ;
    std::cin >> x ; // if input fails, x would be set to zero

    int y = 0 ;
    std::cin >> y ; // do nothing if std::cin is in a failed state

    // there is no need to check that x and y are valid integers

    char relation = '=' ;
    if( x < y ) relation = '<' ;
    else if( y < x ) relation = '>' ;

    std::cout << x << ' ' << relation << ' ' << y << '\n' ;
}

Edited 2 Years Ago by vijayan121

vijayan121

sorry i forgot to post the input & output info

Input
The input consists of two numbers X and Y ( - 10^12 <x, y< 10^12).

Output
Print one line containing the right relational operator ">", "<", "=" without quotes.

Edited 2 Years Ago by aida.atef.31

Hello Aida,
first thing you must to when you write the code is to use #include <iostream> , you forgot the # sharp sign here ,
second thing that is wrong with this code is initialization (Persian : تعریف اولیه)

int X=0 , Y=0;

or

int X{0} , Y{0};

if you don't initialize your variables, you might end up having false values at output .

C++ doesn't recognize operator ^ , if you like to do power calculation , you can use c++11 <math.h> library , then use function pow (10 , 12) to calculate 10^12

third thing thats wrong with this codes are the indents , get a Visual Studio Express 2013 for Win Desktop and It'll fix It for you .

now the code
here's what I suggest :

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    long int x{ 0 }, y{ 0 };
    double num1{ 0 };
    num1 = pow (10.0 , 12.0);
    cout << "Please enter first number then press enter : ";
    cin >> x;
    cout << "Please enter second number then press enter : ";
    cin >> y;
    if (x > -num1, y < num1)
    {
        if (x>y) cout << "First number is bigger than second number";
        else if (x<y) cout << "First number is smaller than second number";
        else if (x = y) cout << "Numbers are equal";
    }
    return 0;
}

this code initializes x & y values , defines variable num1(type double) and puts the result of 10^12 into It , prints some stuff on console and requests for inputs , compares the entered values with num1 and -num1 (10^12 and -10^12) then prints the results .

Edited 2 Years Ago by ArashVenus

else if (X=Y)

In C++, = is the assignment operator. X=Y means "make X have the same value as Y".

The operator you want here is ==.

Edited 2 Years Ago by Moschops

Comments
yep , you're right , I made a mistake

The input consists of two numbers X and Y ( - 10^12 <x, y< 10^12).

Well, then the essence of this exercise is to ask the student to determine and use a suitable signed integer type that can hold integers having 13 decimal digits.
(The types int or long int may be inadequate.)

#include <iostream>

int main()
{
    constexpr auto upper_bound = 1'000'000'000'000 ; // C++14 literal
    // constexpr auto upper_bound = 1000000000000 ; // C++11

    constexpr auto lower_bound = -1'000'000'000'000 ;

    // integer_type is an alias for a signed integer type
    // which can hold integers with 13 decimal digits
    // http://www.stroustrup.com/C++11FAQ.html#decltype
    using integer_type = decltype(9'999'999'999'999) ;

    integer_type x = 0 ;
    std::cin >> x ; // if input fails, x would be set to zero
    integer_type y = 0 ;
    std::cin >> y ; // do nothing if std::cin is in a failed state

    if( x > lower_bound && y < upper_bound )
    {
        char relation = '=' ;
        if( x < y ) relation = '<' ;
        else if( y < x ) relation = '>' ;
        std::cout << x << ' ' << relation << ' ' << y << '\n' ;
    }
}

http://coliru.stacked-crooked.com/a/38a38ef80b3c857c

Edited 2 Years Ago by vijayan121

This article has been dead for over six months. Start a new discussion instead.