C Program to Check whether the Given Number is a Palindromic

C Programming Language Loop control in C Language (Article) Loop control in C Language (Program)

1627

Program:

<span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln">

</span><span class="kwd">int</span><span class="pln"> main</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">int</span><span class="pln"> n</span><span class="pun">,</span><span class="pln"> n1</span><span class="pun">,</span><span class="pln"> rev </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> rem</span><span class="pun">;</span><span class="pln">
    
    printf</span><span class="pun">(</span><span class="str">"Enter any number: "</span><span class="pun">);</span><span class="pln">
    scanf</span><span class="pun">(</span><span class="str">"%d"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">&amp;</span><span class="pln">n</span><span class="pun">);</span><span class="pln">    
    n1 </span><span class="pun">=</span><span class="pln"> n</span><span class="pun">;</span><span class="pln">
    
    </span><span class="com">/* logic */</span><span class="pln">    </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(</span><span class="pln">n </span><span class="pun">&gt;</span><span class="pln"> </span><span class="lit">0</span><span class="pun">){</span><span class="pln">
        rem </span><span class="pun">=</span><span class="pln"> n </span><span class="pun">%</span><span class="pln"> </span><span class="lit">10</span><span class="pun">;</span><span class="pln">
        rev </span><span class="pun">=</span><span class="pln"> rev </span><span class="pun">*</span><span class="pln"> </span><span class="lit">10</span><span class="pln"> </span><span class="pun">+</span><span class="pln"> rem</span><span class="pun">;</span><span class="pln">
        n </span><span class="pun">=</span><span class="pln"> n </span><span class="pun">/</span><span class="pln"> </span><span class="lit">10</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">n1 </span><span class="pun">==</span><span class="pln"> rev</span><span class="pun">){</span><span class="pln">
        printf</span><span class="pun">(</span><span class="str">"Given number is a palindromic number \n"</span><span class="pun">);</span><span class="pln"> 
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">else</span><span class="pun">{</span><span class="pln">
        printf</span><span class="pun">(</span><span class="str">"Given number is not a palindromic number \n"</span><span class="pun">);</span><span class="pln"> 
    </span><span class="pun">}</span><span class="pln">    
    </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> 
</span><span class="pun">}</span><span class="pln"> </span>

Output:

 Output 1
Enter any number: 1221
Given number is a palindromic number
Press any key to continue . . .

 Output 2
Enter any number: 1232
Given number is not a palindromic number
Press any key to continue . . .

Explanation:

Consider a numbern=121, reverse=0 and remainder;
number=121

now the while loop is executed /* the condition (n>0) is satisfied */

/* calculate remainder */
remainder of 121 divided by 10=(121%10)=1;
now reverse=(reverse*10)+remainder
=(0*10)+1 /* we have initialized reverse=0 */
=1
number=number/10
=121/10
=12

now the number is 12, greater than 0. The above process is repeated for number=12.
remainder=12%10=2;
reverse=(1*10)+2=12;
number=12/10=1;
now the number is 1, greater than 0. The above process is repeated for number=1.
remainder=1%10=1;
reverse=(12*10)+1=121;
number=1/10 /* the condition n>0 is not satisfied,control leaves the while loop */

Program stops here. The given number=121 equals the reverse of the number. Thus the given number is a palindrome number.


This Particular section is dedicated to Programs only. If you want learn more about C Programming Language. Then you can visit below links to get more depth on this subject.