hello, i really dont know why ?

to let you know what i intend to do , please read this question "

[Finding a palindrome number ]

"A palindrome is a number or a text phrase that reads the same backwards as forwards.

For example, each of the following five-digit integers is a palindrome: 12321, 55555,

45554 and 11611. Write a program that reads in a five-digit integer and determines

whether it is a palindrome. [Hint: Use the division and modulus operators to separate

the number into its individual digits.]"

after going through the usual way of separating of digits ... to show that if two numbers

(the original one and the new generated number) i used the logical And operator (&&) ..

so that if the two numbers are the same it would generate the number 1

which is considered true in C++ ... and if not ,, it will produce 0 that is False.

but when compiling the program . i always get "true" in loop continuation condition

and thus i fail ! i tried to use equality operator (==) to check

whether two numbers are the same , but again no luck ! i get that damn true in loop -continuation condition

!then after some time of contemplating i come up with the second solution ,

that only works with 5 digit numbers ! ( and im not fond of using it , cuz i think this kind of solution is not right , and it just doesnt feel good !

now i just wana know why this happens , and where i made my mistake ! and what is (or are ) my mistake(s) ...

any comment is greatly appreciated .

first snippets of code:

program number 2: using a very terrible way to solve the assignment !:Code:`//In the Name Of God`

/*

4.26 A palindrome is a number or a text phrase that reads the same

backwards as forwards. For example, each of the following five-digit integers

is a palindrome: 12321, 55555, 45554 and 11611. Write a program that reads

in a five-digit integer and determines whether it is a palindrome

. [Hint: Use the division and modulus operators to separate the number into its individual digits.]

*/

#include <iostream>

using std::cout;

using std::cin;

using std::endl;

using std::boolalpha;// causes bool values to print as "true" or "false"

#include <iomanip>

using std::setw;

int main()

{

int num;

int temp;

int shadow;

int mirror;/* a copy of original number is created to be compared

with the new generated number to find out where it is a palindrome number !*/

const int digit =5;

cout<<"Please Enter a 5 digit number (ex:55555): ";

cin>>num;

mirror=num;

/*The while works fine , but when i use && to assure that

two numbers are the same , it always gives a True condition! why?

*/this made me to write that kind of statement.

while( num!=0)

{

temp=num/10;

shadow=num%10;//new number to generate

num=temp;

}

if ( (shadow&&mirror)==true )

{

cout<<boolalpha<<endl<<setw(5)<<(shadow&&mirror);

cout<<"\n\n A Palindrome number found! ";

cout<<"\n The number You have Entered is a Palindrome number ("<<mirror<<")\n\n";

}

else //if ( (shadow&&mirror)== false )

{

cout<<boolalpha<<!(shadow&&mirror);

cout<<"\nThe number You have Entered Is not Palindrome "<<endl;

}

return 0;

}

thanks a million in advance !Code:`//In the Name Of God`

/*

4.26 A palindrome is a number or a text phrase that reads the same backwards as forwards

. For example, each of the following five-digit integers is a palindrome: 12321, 55555,

45554 and 11611. Write a program that reads in a five-digit integer and determines

whether it is a palindrome. [Hint: Use the division and modulus operators to separate

the number into its individual digits.]

*/

#include <iostream>

using std::cout;

using std::cin;

using std::endl;

using std::boolalpha;// causes bool values to print as "true" or "false"

#include <iomanip>

using std::setw;

int main()

{

int num;

int temp;

int shadow,last2;

int mirror,first2;

const int digit =5;

cout<<"Please Enter a 5 digit number (ex:55555): ";

cin>>num;

mirror=num;

// the while here is useless! see the comment underneath !

while( num!=0)

{

temp=num/10;

shadow=num%10;

num=temp;

}

// here is the solution i found to this.!

first2=mirror%100;

last2=mirror/1000;

if ( (first2==last2) )

{

cout<<"\n\n A Palindrome number found! ";

cout<<"\n The number You have Entered is a Palindrome number ("<<mirror<<")\n\n";

}

else //if ( (shadow&&mirror)== false )

{

cout<<"\nThe number You have Entered Is not A Palindrome "

<<"\n\nfirst2 && last2 = "<<(last2&&first2)<<" but Why?!\n\n";

}

cout<<"\n\n\n\n\nfirst2 digits (%100) "<<first2

<<"\n\nFrom "<<mirror<<endl<<endl

<<"last2 digits (/1000) "<<last2

<<"\n\nfirst2 && last2 = "<<(last2&&first2)<<" !\n\n";

return 0;

}

(by the way i use code::blocks 8.2 compiler )