w3resource

C Exercises: Check whether an integer is a palindrome or not

C Programming Mathematics: Exercise-2 with Solution

Write a C program to check whether an integer is a palindrome or not. An integer is a palindrome when it reads the same forward as backward.

Example:
Input:
i = 1221
i = -121
i = 100
Output:
Is Palindrome: 1
Is Palindrome: 0
Is Palindrome: 0

Pictorial Presentation:

C Exercises: Check  whether an integer is a palindrome or not

Sample Solution:

C Code:

#include <stdio.h>
#include <stdbool.h>

bool is_Palindrome(int i) {
    int n, d, y = 0;
    
    if (i < 0) 
	return false;
    
    n = i;
    while (n) {
        d = n % 10;
        if (y > (0x7fffffff - d) / 10) 
		return false;   
        y = y * 10 + d;
        n = n / 10;
    }
    
    return (y == i);
}

int main(void)
{
    int i = 1221;
    printf("Original integer: %d  ",i);
    printf("\nIs Palindrome: %d  ",is_Palindrome(i));
    i = -121;
    printf("\nOriginal integer: %d  ",i);
    printf("\nIs Palindrome: %d  ",is_Palindrome(i));
    i = 100;
    printf("\nOriginal integer: %d  ",i);
    printf("\nIs Palindrome: %d  ",is_Palindrome(i));
    return 0;
}

Sample Output:

Original integer: 1221  
Is Palindrome: 1  
Original integer: -121  
Is Palindrome: 0  
Original integer: 100  
Is Palindrome: 0  

Flowchart:

Flowchart: Check whether an integer is a palindrome or not

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a C program to reverse the digits of a given integer
Next: Write a C program to divide two integers (dividend and divisor) without using multiplication, division and mod operator.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.