Thursday, 2 February 2017

Find Palindrome in C


Palindrome is a sequence of characters which reads same backward or forward.

sample code for finding palindrome string


int is_palindrome_string(const char string[]){
        int left = 0, right = 0;
        int result = 1;
        right = strlen(string)-1;
        for(;left < right; left++, right--){
                if(string[left] != string[right]){
                        result = 0;
                        break;
                }
        }

        return result;
}


sample code for finding palindrome number. Using above logic


int is_palindrome_number(unsigned int number){
        char buffer[256]={0x00};
        char pale_buffer[256]={0x00};
        int len =0;
        len = snprintf(buffer, sizeof(buffer)-1, "%d", number);
        return is_palindrome_string(buffer);
}

Full Source code


#include <stdio.h>
#include <string.h>

int is_palindrome_string(const char string[]){
        int left = 0, right = 0;
        int result = 1;
        right = strlen(string)-1;
        for(;left < right; left++, right--){
                if(string[left] != string[right]){
                        result = 0;
                        break;
                }
        }

        return result;
}

int is_palindrome_number(unsigned int number){
        char buffer[256]={0x00};
        char pale_buffer[256]={0x00};
        int len =0;
        len = snprintf(buffer, sizeof(buffer)-1, "%d", number);
        return is_palindrome_string(buffer);
}


int main(int argc, char *argv[]){
        char pale[] = "madam";
        int num = 13431;
        if(is_palindrome_number(num)){
                printf("%d is Palindrome\n", num);
        }else{
                printf("%d is Not Palindrome\n", num);
        }
        if(is_palindrome_string(pale)){
                printf("%s is Palindrome\n", pale);
        }else{
                printf("%s is Not Palindrome\n", pale);
        }
        return 0;
}

Wednesday, 1 February 2017

Find whether given number is prime number or not?


A positive number is a prime number only when it will be divisible by itself and 1 only.

sample function to test prime number or not


int is_prime_number(unsigned int number){
        if(number <= 1){
                return 0;
        }
        for(unsigned int devisor=2; devisor < number/2; devisor++){
                if(number % devisor == 0){
                        return 0;
                }
        }
        return 1;
}

Complete Code


#include <stdio.h>
#include <stdlib.h>

int is_prime_number(unsigned int number){
        if(number <= 1){
                return 0;
        }
        for(unsigned int devisor=2; devisor < number/2; devisor++){
                if(number % devisor == 0){
                        return 0;
                }
        }
        return 1;
}

int main(int argc, char *argv[]){
        unsigned int num = 97;
        if( argc > 1){
                num =  atoi(argv[1]);
        }
        printf("%d is %s\n", num, is_prime_number(num) ? "prime number": "non prime numebr");
        return 0;
}

Compilation and Output


rajesh@ideapad:~/Rajesh/Blog/primenumber$ gcc primenumber.c
rajesh@ideapad:~/Rajesh/Blog/primenumber$ ./a.out 
97 is prime number
rajesh@ideapad:~/Rajesh/Blog/primenumber$ ./a.out 103
103 is prime number
rajesh@ideapad:~/Rajesh/Blog/primenumber$ ./a.out 102
102 is non prime numebr

Find Greatest Number among 10 numbers?


Traverse all elements in array, then store greater number in a variable by comparing with current element


int greatest_numers_in_array(const int numbers[], long unsigned int max_ele){
        int result=0;
        for(long unsigned int i=0; i < max_ele; i++){
                if(numbers[i] > result){
                        result = numbers[i];
                }
        }
        return result;
}

Complete code


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ARRAY_LENGTH(ARR) \
        (sizeof(ARR)/sizeof(ARR[0]))

int greatest_numers_in_array(const int numbers[], long unsigned int max_ele){
        int result=0;
        for(long unsigned int i=0; i < max_ele; i++){
                if(numbers[i] > result){
                        result = numbers[i];
                }
        }
        return result;
}

int main(int argc, const char *argv[]){
        int numbers[10]={0x00};
        srand(time(NULL));
        for( int i=0; i< 10; i++){
                for( int j=0; j < 10; j++){
                        numbers[j] = rand()%1000;
                }
                printf("Greatest among (%d,%d,%d,%d,%d,%d,%d,%d,%d,%d) is %d\n", numbers[0], numbers[1], numbers[2], numbers[3], numbers[4], numbers[5], numbers[6], numbers[7], numbers[8], numbers[9], greatest_numers_in_array(numbers, ARRAY_LENGTH(numbers)) );
        }

        return 0;
}

code compilation and out put


rajesh@ideapad:~/Rajesh/Blog/findgreatest$ gcc find_greatest_number.c 
rajesh@ideapad:~/Rajesh/Blog/findgreatest$ ./a.out 
Greatest among (978,235,957,270,361,360,637,514,64,558) is 978
Greatest among (635,491,917,22,547,762,78,609,7,845) is 917
Greatest among (291,277,135,181,738,581,269,845,254,262) is 845
Greatest among (943,232,849,900,502,210,261,139,77,677) is 943
Greatest among (49,64,169,318,438,716,432,869,677,440) is 869
Greatest among (714,969,69,849,150,807,431,772,4,685) is 969
Greatest among (386,947,269,235,199,771,798,460,262,227) is 947
Greatest among (490,663,291,11,981,730,79,413,951,757) is 981
Greatest among (205,665,726,274,514,228,433,297,352,789) is 789
Greatest among (982,738,736,603,974,288,374,124,748,988) is 988

Sunday, 29 January 2017

Find Greatest Among 3 Numbers


1. Function to Find Greatest Among Three Numbers using if else statement.

int greatest_among_three(const int num1, const int num2, const int num3){
        int result=0;
        if( num1 > num2){
                if( num1 > num3){
                        result = num1;
                }else{
                        result = num3;
                }
        }else if(num2 > num3){
                result = num2;
        }else{
                result = num3;
        }
        return result;
}

Full Program Code ...

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int greatest_among_three(const int num1, const int num2, const int num3){
        int result=0;
        if( num1 > num2){
                if( num1 > num3){
                        result = num1;
                }else{
                        result = num3;
                }
        }else if(num2 > num3){
                result = num2;
        }else{
                result = num3;
        }
        return result;
}

int main(int argc, const char *argv[]){
        int num1=0, num2=0, num3=0;
        srand(time(NULL));
        for( int i=0; i< 10; i++){
                num1 = rand()%1000;
                num2 = rand()%1000;
                num3 = rand()%1000;
                printf("Greatest among (%d,%d,%d) is %d\n", num1, num2, num3, greatest_among_three(num1, num2, num3));
        }
        return 0;
}

Sunday, 14 August 2016

hello world c


#include<stdio.h>

int main(int argc, char *argv[]){
    print("Hello World\n");
    return 0;
}