hi all....I need help with a pragram which i wrote .....Itz to check if a number is palindrome or not using a function...i.e. the program will ask the user to input any number....then if u reverse the number it will give u the same old number then it is a palindrome number....For Example: if the user enters 121 ...then if u reverse it will give u the same number 121..and so 121 is a palindrome number.....The program which i wrote is below:

#include<iostream.h>


int palindrome(int n)


{


int x, m=0;
while(n>0)


{


x=n%10;


m*=10;


m+=x;


n/=10;


}


return m;


}


void main()


int n, y;


cout<<"Enter any number"<<endl;


cin>>n;


y=palindrome(n);


if(n==y)


cout<<"The entered number is a palindrome number "<<endl;


else


cout<<"The entered number is not a palindrome number "<<endl;



}

The errors of the program are:

:warning C4518: 'int ' : storage-class or type specifier(s) unexpected here; ignored
: error C2146: syntax error : missing ';' before identifier 'n'
: fatal error C1004: unexpected end of file found
Dave Sinkula commented: Use code tags. +0

Dani AI

Generated

A concise expert note that ties the replies together and adds a few practical checks.

and correctly spotted the immediate cause: the main function was left without a proper function body opener. When a brace is missing the compiler starts interpreting the next lines as top‑level declarations, which produces a cascade of confusing messages and finally an unexpected end‑of‑file. The important rule is: fix the first syntactic error the compiler reports, because many later errors are just symptoms.

Practical fixes to apply (in order): make sure the code inside main is enclosed by { and its matching }; prefer the standard signature int main() and end it with return 0;; check that every function is either defined before it is used or has a prior prototype. Also verify you didn’t accidentally drop a brace when copying/pasting — many "mysterious" compile errors come from one missing curly.

A few robustness and style suggestions: use the standard header #include <iostream> and qualify output with std:: (the old <iostream.h> is obsolete). If the palindrome routine will see very large inputs, consider using a larger integer type or a string-based reversal to avoid overflow. Explicitly handle negative input (decide whether negatives should be treated as non-palindromic or test the absolute value).

Debugging workflow to adopt: fix the first error and recompile, use your editor/IDE brace matching, turn on compiler warnings, and test edge cases like negative numbers, leading zeros, and very large values. As recommended, getting familiar with compiler diagnostics makes these problems trivial to find. For clearer, standards‑compliant diagnostics, consider compiling with a modern toolchain rather than an old compiler.

Recommended Answers

All 5 Replies

Hi, just wondering what complier you're using. I compiled your code with Borland C++ 5.5.1 and obtained the following error messages.

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
palindrome.cpp:
Error E2141 palindrome.cpp 28: Declaration syntax error
Error E2141 palindrome.cpp 30: Declaration syntax error
Error E2141 palindrome.cpp 32: Declaration syntax error
Error E2303 palindrome.cpp 34: Type name expected
Error E2451 palindrome.cpp 34: Undefined symbol 'n'
Error E2040 palindrome.cpp 36: Declaration terminated incorrectly
Error E2040 palindrome.cpp 40: Declaration terminated incorrectly
Error E2190 palindrome.cpp 45: Unexpected }
*** 8 errors in Compile ***

All that I did next is to correct the very last error. After inserting a brace '{' after line 26 (i.e. after the code 'void main()'), the code compiled without error. I think that's all that you missed.

IF THIS IS THE SAME CODE U HAVE TRIED THEN I THINK THE ONLY ERROR IS THAT AFTER
void main()
U HAVE NOT GIVEN THE BRACES AND THATS WHY THE COMPILER IS RELATING IT WITH A CLSS;
SO GIVE THE BRACES

           void main()
              {

like this and i hope ur problem will be solved

sorry, i didn`t notice that KHKWA has already solved the problem just a few moments before me. so my suggestion was needless

I use Microsoft visual C++ 6.0....

Do u know watz da mistake in my program?

if you read back a few replies you'll see the answer to that.

Learning to read compiler output can be a bit tricky but is extremely helpful.

Tutorials and teachers should spend time on it (even though different compilers produce different output the principles remain the same), sadly most don't and just expect everything to compile first time...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.