Lab 4 (C Programming) Solution

Feb 18, 2019

 programs written here are compiled and run in gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 

1)Write a program to check whether input alphabet is vowel or not using if-else and switch statement.

 

Source Code(using if-else): 

/*check vowel or not using if else */
#include<stdio.h>

int main()
{
    char ch;
    printf("Enter the character to check:");
    scanf(" %c", &ch);

    /* checking alphabet or not
       you can also check for ascii values too
       if((ch >= 65 && ch <= 90) ||(ch >= 97 && ch <= 122))
    */

    if((ch >= 'A' && ch <= 'Z') ||(ch >= 'a' && ch <= 'z')){
        /* checking if it is vowel */
        if(ch=='A' || ch=='E' || ch=='I' || ch=='O' || ch=='U' || ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u'){
            printf("It is vowel.");
        }else{
            printf("It is not vowel.");
        }
    }else{
        printf("The Entered character is not alphabet.");
    }

    return 0;
} 

 

Output:

Enter the character to check:f
It is not vowel.

 

Source Code(using switch-statement): 

#include <stdio.h>

int main()
{
    char ch;
    printf("Enter the character:");
    scanf(" %c", &ch);
    switch(ch){
        case 'A':
        case 'E':
        case 'I':
        case 'O':
        case 'U':
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            printf("It is vowel.");
            break;
        default:
            printf("It is not vowel.");
            break;
    }
    return 0;

 

Output:

Enter the character:E
It is vowel.

 

2)Write a program to get input of two or higher digit integer number and display in reverse order, Also check if the number is pallindrome or not?

 

Source Code: 

#include <stdio.h>

int main()
{
    unsigned long int number, temp_number, rev_number = 0;
    short int rem;
    printf("Enter the number to check:");
    scanf("%lu", &number);
    temp_number = number;
    do{
        rem = temp_number % 10;
        temp_number /= 10;
        rev_number = rev_number * 10 + rem;
    }while(temp_number != 0);
    printf("Reverse of the given number = %lu\n", rev_number);
    if(number == rev_number){
        printf("Entered number is pallindrome.\n");
    }else{
        printf("Entered number is not pallindrome.\n");
    }
    return 0;
} 

 

Output:

Enter the number to check:123454321
Reverse of the given number = 123454321
Entered number is pallindrome. 

 

3)Write a program that asks a number and test the number whether it is multiple of 5 or not, divisible by 7 but not by eleven.

 

Source Code: 

 #include <stdio.h>

int main()
{
    int number;
    printf("Enter the number to check:");
    scanf("%d", &number);
    if((number % 5 == 0) && (number % 7 == 0) && (number % 11 != 0)){
        printf("Entered number is multiple of 5 divisible by 7 and not divisible by 11.");
    }else{
        printf("Entered number does not meet the above requirement.");
    }
    return 0;
}

 

 

Output:

Enter the number to check:35
Entered number is multiple of 5 divisible by 7 and not divisible by 11. 

  

4)Write a program to check whether the entered year is leap year or not (a year is leap if it is divisible by 4 and divisible by 100 or 400.)

 

Source Code: 

  /*program to check leap year*/
#include <stdio.h>

int main()
{
    int year;
    printf("Enter the year:");
    scanf("%d", &year);
    if(year % 4 == 0){
        if(year % 100 == 0){
            if(year % 400 == 0){
                printf("It is leap year.");
            }else{
                printf("It is not leap year.");
            }
        }else{
            printf("It is leap year.");
        }
    }else{
        printf("It is not leap year.");
    }
    return 0;
}

 

 

Output:

Enter the year:800
It is leap year. 

 

 

5)Write a program to read the values of coefficients a, b and c of a quadratic equation ax2 +bx+c=0 and find roots of the equation.

 

Source Code: 

#include <stdio.h>
#include <math.h>

int main()
{
    float a, b, c, d, r1, r2, rpart, ipart;
    printf("Enter a, b and c of quadratic equation:");
    scanf(" %f %f %f", &a, &b, &c);
    d = pow(b, 2) - 4 * a * c;
    if( d > 0){
        r1 = (-b + sqrt(d)) / 2*a;
        r2 = (-b - sqrt(d)) / 2*a;
        printf("Roots are real and are %f and %f", r1, r2);
    }else if(d == 0){
        r1 = -b/2*a;
        printf("The roots are real and equal and is:%f", r1);
    }else{
        rpart = -b/2*a;
        ipart = sqrt(-d)/2*a;
        printf("Roots are imaginary and are.\n");
        printf("%0.2f+i%0.2f and %0.2f+i%0.2f", rpart, ipart, rpart, ipart);
    }
    return 0;
}
 

 

Output:

Enter a, b and c of quadratic equation:1
2
3
Roots are imaginary and are.
-1.00+i1.41 and -1.00+i1.41 

 

 

6)Write a program to check if the character entered by the user is alphabet, digit or special character.

 

Source Code: 

#include <stdio.h>

int main()
{
    char ch;
    printf("Enter the character to check:");
    scanf(" %c", &ch);
    if((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')){
        printf("It is alphabet.");
    }else if(ch >= '0' && ch <= '9'){
        printf("It is digit.");
    }else{
        printf("It is special character.");
    }
    return 0;
}
 

 

Output:

Enter the character to check:D
It is alphabet. 

 

 

7)Write a program to find the largest of three numbers entered by the user, using if else statement.

 

Source Code: 

 #include <stdio.h>

int main()
{
    int a, b, c;
    printf("Enter three numbers.");
    scanf(" %d %d %d", &a, &b, &c);
    if(a > b){
        if(a > c){
            printf("%d is greatest.",a);
        }else{
            printf("%d is greatest.",c);
        }
    }else{
        if(b > c){
            printf("%d is greatest.",b);
        }else{
            printf("%d is greatest.",c);
        }
    }
    return 0;
}
 

 

Output:

Enter three numbers.45
67
55
67 is greatest.