Thursday, December 18, 2014

Array of Size and Bitwise Operators in C Pro



Identify the Missing Number in an Integer Array of Size N-1 with Numbers [1,N]

#include 
#include 
#define max 15
int missing_number_array(int [],int);
int main()
{
    int a[max], num, i, n;
    clrscr();
    printf("enter the range of array\n");
    scanf("%d", &n);
    for (i = 0;i < n;i++)
    {
        printf("enter a[%d]element into the array:", i);
        scanf("%d", &a[i]);
    }
    num = missing_number_array(a, n);
    printf("The missing number -> %d\n", num);
}
int missing_number_array(int a[],  int n)
{
    int i;
    int s1 = 0; 
    int s2 = 0; 
 
    for (i = 0;i < n;i++)
        s1 = s1 ^ a[i];
    for (i = 1;i <= n + 1;i++)
        s2 = s2 ^ i; 
    return (s1 ^ s2); 
    getch();
}
 
Output
 
Enter the range of array
9
Enter a[0]element into the array:1
Enter a[1]element into the array:5
Enter a[2]element into the array:2
Enter a[3]element into the array:7
Enter a[4]element into the array:3
Enter a[5]element into the array:4
Enter a[6]element into the array:10
Enter a[7]element into the array:9
Enter a[8]element into the array:6
The missing number -> 8
Enter the range of array
4
Enter a[0]element into the array:1
Enter a[1]element into the array:5
Enter a[2]element into the array:3
Enter a[3]element into the array:2
The missing number -> 4
Enter the range of array
4
Enter a[0]element into the array:3
Enter a[1]element into the array:2
Enter a[2]element into the array:5
Enter a[3]element into the array:4
The missing number -> 1

Check whether the given Number is Palindrome or not using Bitwise Operator

#include 
#include 
#include 
#define size 8
int is_palindrome(unsigned char[]);
 
void main()
{
    int num, num1 = 0, i = 0, j = SIZE - 1, res;
    unsigned char c[size];
    clrscr();
    printf("Enter a number(max 255)");
    scanf("%d", &num);
    num1 = num;
    while (num != 0)
    {
        c[j] = num&1;
        j--;
        num = num>>1;
    }
    printf("The number %d in binary is:", num1);
    for (i = 0;i < size;i++)
    {
        printf("%d", c[i]);
    }
    res = is_palindrome(c);    
    if (res == 0)
    {
        printf("\n Number is palindrome\n");
    }
    else
    {
        printf("\n Number is not palindrome\n");
    }
}
 
int is_palindrome(unsigned char c[])
{
    char temp[size];
    int i, j, flag = 0;
    for (i = 0, j = size - 1;i < size, j >= 0;i++, j--)
    {
        temp[j] = c[i];
    }
    for (i = 0;i < size;i++)
    {
        if (temp[i] != c[i])
        {
            flag = 1;
        }
    }
    return flag;
}
 
Output
                   
            Enter a number(max 255)153
            The number 153 in binary is:10011001
            Number is palindrome
            Enter a number(max 255)24
            The number 24 in binary is:00011000
             Number is palindrome

Swap two Numbers using Bitwise Operators

#include 
#include 
#include 
void swap(int*, int *);
void main()
{
    int num1, num2;
    printf("\nEnter two numbers:");
    scanf("%d %d", &num1, &num2);
printf("\nThe numbers before swapping are Number1= %d Number2 = %d", num1, num2);
    swap(&num1, &num2);        
    printf("\nThe numbers after swapping are Number1= %d Number2 = %d", num1, num2);
}
 void swap(int *x, int *y)
{
    *x = *x ^ *y;
    *y = *x ^ *y;
    *x = *x ^ *y;
}

Output
 
Enter two numbers:45 76
The numbers before swapping are Number1= 45 Number2=76
The numbers after swapping are Number1= 76 Number2=45

No comments:

Post a Comment