Wednesday, 7 December 2016

Palindrome Checking

A palindrome is a sequence of characters or numbers, which reads the same both forward and backward.  Example:   madam, kayak, 12321.

//Program to check palindrome
#include<stdio.h>
#include<conio.h>
main()
{
 int choice,i=0,j,n,num,rev=0;
 char *str;
 clrscr();
 do
 {
  printf("1. String Palindrome\n 2. Number Palindrome\n");
  printf("Enter your choice\n");
  scanf("%d",&choice);
  switch (choice)
  {
    case 1: printf("Enter the string\n");
              scanf("%s",str);
              while (str[++i] !='\0');          // To count the number of characters
                 i=i-1;
              for(j=0;j<=i;j++,i--)             // j starts from first character and i starts from last character
if (str[j]!=str[i])
break;
                if (j>i)
printf("The given string is palindrome\n");
               else
printf("The given string is not palindrome\n");
               break;
    case 2: printf("Enter the number\n");
              scanf("%d",&n);
              num=n;                     //the given number is needed for final comparison; hence stored in num
              rev=0;
             while (n>0)
    {
rev=rev*10+n%10;
n=n/10;
             }
             if (num==rev)
printf("The given number %d is palindrome\n",num);
            else
printf("The given number %d is not palindrome\n",num);
             break;
    default: printf("Wrong choice\n");
   }
   printf("Do you want to continue? 1. Yes  2. No\n");
   scanf("%d",&choice);
 }while (choice==1);
getch();
}

/*
OUTPUT
------------
1
Enter the string
mary
The given string is not palindrome
Do you want to continue? (y/n)1. Yes  2. No
1
1. String Palindrome
2. Number Palindrome
Enter your choice
2
Enter the number
12321
The given number 12321 is palindrome
Do you want to continue? (y/n)1. Yes  2. No
1
1. String Palindrome
2. Number Palindrome
Enter your choice
2
Enter the number
1234
The given number 1234 is not palindrome
Do you want to continue? (y/n)1. Yes  2. No
2
*/

No comments:

Post a Comment