• # C Program to Check Palindrome Number Using Functions

Welcome to this tutorial on how to write a C program to check if a number is a palindrome using functions. Whether you are new to programming or looking to enhance skills, this blog post will guide you through the process by step.

## Introduction

A palindrome number is number that remains the same when its digits are reversed. For example, 121 and 555 are palindrome numbers because they read the same from left to right or right to left. In this tutorial, we will write a C program to check if a given number is a palindrome or not, using functions.

## Breaking Down the Problem

To solve this problem, we can break it down into smaller steps:

1. Accept a number from the user.

2. Reverse the number.

3. Compare the reversed number with the original number.

4. If they are the same, the number is a palindrome. Otherwise, it is not.

Let’s dive into each step in detail.

## Accepting a Number from the User

In order to check if a number is a palindrome, we need to accept it from the user. We can use the `scanf()` function to read the number inputted by the user.

``````#include <stdio.h>

int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
return 0;
}``````

We have declared a variable `number` of type `int` to store the user’s input. The `printf()` function is used to prompt the user to enter a number, and the `scanf()` function stores the input in the `number` variable.

## Reversing the Number

To check if a number is a palindrome, we need to reverse it. We can create a separate function `reverseNumber()` to reverse the given number.

``````#include <stdio.h>

int reverseNumber(int num) {
int reversedNumber = 0;
while(num != 0) {
reversedNumber = reversedNumber * 10 + (num % 10);
num /= 10;
}
return reversedNumber;
}

int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);

int reversedNumber = reverseNumber(number);

return 0;
}``````

In the `reverseNumber()` function, we declare a variable `reversedNumber` to store the reversed number. We use a `while` loop to iterate until the given number becomes 0. At each iteration, we multiply the `reversedNumber` by 10 and add the remainder when dividing the original number by 10. This effectively builds the reversed number digit by digit. Finally, we return the `reversedNumber` from the function.

In the `main()` function, we call the `reverseNumber()` function passing the `number` as an argument. The reversed number is then stored in the variable `reversedNumber`.

## Comparing the Reversed Number

Once we have the reversed number, we can compare it with the original number to check if they are the same. We can create another function called `isPalindrome()` to perform this comparison.

``````#include <stdio.h>

int reverseNumber(int num) {
int reversedNumber = 0;
while(num != 0) {
reversedNumber = reversedNumber * 10 + (num % 10);
num /= 10;
}
return reversedNumber;
}

int isPalindrome(int num) {
int reversedNumber = reverseNumber(num);

if(num == reversedNumber) {
return 1; // The number is a palindrome.
}
else {
return 0; // The number is not a palindrome.
}
}

int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);

if(isPalindrome(number)) {
printf("%d is a palindrome number.", number);
}
else {
printf("%d is not a palindrome number.", number);
}

return 0;
}``````

In the `isPalindrome()` function, we call the `reverseNumber()` function to get the reversed number. We then compare the original number (`num`) with the reversed number. If they are the same, we return 1, indicating that the number is a palindrome. Otherwise, we return 0 to indicate that the number is not a palindrome.

Back in the `main()` function, we use an `if` statement to check the return value of the `isPalindrome()` function. If it returns 1, we print a message stating that the number is a palindrome. Otherwise, we print a message indicating that the number is not a palindrome.

## Putting It All Together

Now that we have discussed each step individually, let’s put everything together into a single program.

``````#include <stdio.h>

int reverseNumber(int num) {
int reversedNumber = 0;
while(num != 0) {
reversedNumber = reversedNumber * 10 + (num % 10);
num /= 10;
}
return reversedNumber;
}

int isPalindrome(int num) {
int reversedNumber = reverseNumber(num);

if(num == reversedNumber) {
return 1; // The number is a palindrome.
}
else {
return 0; // The number is not a palindrome.
}
}

int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);

if(isPalindrome(number)) {
printf("%d is a palindrome number.", number);
}
else {
printf("%d is not a palindrome number.", number);
}

return 0;
}``````

## Conclusion

In this tutorial, we have learned how to write a C program to check if a number is a palindrome using functions. We broke down the problem into smaller steps and discussed each step in detail. By following the code examples and explanations provided, you should now be able to write your own C program to check for palindrome numbers.

Remember, practicing is crucial to improving your programming skills. Try modifying the program or addressing additional requirements to further enhance your understanding. Keep exploring and pushing your boundaries to become a more proficient programmer.

If you want to delve deeper into the topic, you can explore concepts like recursion to solve the palindrome problem or try implementing the program in different programming languages. The possibilities are endless, and the more you experiment, the more you will learn.

Happy coding!