Lab 7 (C Programming) Solution

Feb 22, 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 read fifteen floating point array from the user and find the smallest and largest element of the array. 

Source Code: 

#include <stdio.h>
#define N 15

int main()
{
    float array[N], largest, smallest;
    int i;
    printf("Enter fifteen floating point elements:");
    for(i = 0; i < N; i++){
        scanf("%f", &array[i]);
    }
    largest = array[0];
    smallest = array[0];

    for(i = 1; i < N; i++){
        if(largest < array[i]){
            largest = array[i];
        }
        if(smallest > array[i]){
            smallest = array[i];
        }
    }
    printf("Largest = %f\n", largest);
    printf("Smallest = %f", smallest);
    return 0;
} 

 

Output:

Enter fifteen floating point elements:12
13
45
56
22
33
12
34
33
23
32
17
77
35
50
Largest = 77.000000
Smallest = 12.000000

 

 

2)Write a program to read floating point array of size 10, find and display the sum and average of the array elements.

 

Source Code: 

#include <stdio.h>
#define N 10

int main()
{
    float array[N], sum = 0, average;
    int i;
    printf("Enter floating poing numbers:");
    for(i = 0; i < N; i++){
        scanf("%f", &array[i]);
        sum += array[i];
    }
    average = sum/N;
    printf("SUM = %f\n", sum);
    printf("Average = %f\n", average);
    return 0;
}

 

 

Output:

Enter floating poing numbers:11
2
3
33
22
5
8
9
10
11
SUM = 114.000000
Average = 11.400000
 

 

3)Write a program to read two matrices of order 3 * 2, add them and display the resultant matrix in matrix form.

 

Source Code: 

#include <stdio.h>
#define ROW 3
#define COL 2

int main(){
    int mat1[ROW][COL], mat2[ROW][COL], mat3[ROW][COL], i, j;
    printf("Enter first matrix:\n");
    for(i = 0; i < ROW; i++){
        for(j = 0; j < COL; j++){
            printf("Enter element mat1[%d][%d]:", i+1, j+1);
            scanf("%d", &mat1[i][j]);
        }
    }
    printf("Enter second matrix:\n");
    for(i = 0; i < ROW; i++){
        for(j = 0; j < COL; j++){
            printf("Enter element mat2[%d][%d]:", i+1, j+1);
            scanf("%d", &mat2[i][j]);
        }
    }
    for(i = 0; i < ROW; i++){
        for(j = 0; j < COL; j++){
            mat3[i][j] = mat1[i][j] + mat2[i][j];
        }
    }
    printf("Resultant Matrix is:\n");
    for(i = 0; i < ROW; i++){
        for(j = 0; j < COL; j++){
            printf("%d\t", mat3[i][j]);
        }
        printf("\n");
    }
    return 0;
}

 

 

Output:

Enter first matrix:
Enter element mat1[1][1]:3
Enter element mat1[1][2]:4
Enter element mat1[2][1]:5
Enter element mat1[2][2]:6
Enter element mat1[3][1]:7
Enter element mat1[3][2]:8
Enter second matrix:
Enter element mat2[1][1]:9
Enter element mat2[1][2]:4
Enter element mat2[2][1]:8
Enter element mat2[2][2]:7
Enter element mat2[3][1]:6
Enter element mat2[3][2]:4
Resultant Matrix is:
12	8	
13	13	
13	12	

 

  

4)Write a program to multiply two 3*3 matrix.

 

Source Code: 

#include <stdio.h>
#include <stdlib.h>
#define ROW 10
#define COL 10

int main(){
    int mat1[ROW][COL], mat2[ROW][COL], mat3[ROW][COL], i, j, k, r1, c1, r2, c2, sum = 0;

    printf("Enter the row and column of first matrix:");
    scanf("%d %d", &r1, &c1);
    printf("Enter the row and column of second matrix:");
    scanf("%d %d", &r2, &c2);
    if(c1 != r2){
        printf("Matrix multiplication not possible.\n");
        exit(0);
    }

    printf("Enter first matrix:\n");
    for(i = 0; i < r1; i++){
        for(j = 0; j < c1; j++){
            printf("Enter element mat1[%d][%d]:", i+1, j+1);
            scanf("%d", &mat1[i][j]);
        }
    }
    printf("Enter second matrix:\n");
    for(i = 0; i < r2; i++){
        for(j = 0; j < c2; j++){
            printf("Enter element mat2[%d][%d]:", i+1, j+1);
            scanf("%d", &mat2[i][j]);
        }
    }
    /* multiplying matrix */
    for(i = 0; i < r1; i++){
        for(j = 0; j < c2; j++){
            for(k = 0; k < r2; k++){
                sum += mat1[i][k] * mat2[k][j];
            }
            mat3[i][j] = sum;
            sum = 0;
        }
    }
    printf("Product Matrix is:\n");
    for(i = 0; i < r1; i++){
        for(j = 0; j < c2; j++){
            printf("%d\t", mat3[i][j]);
        }
        printf("\n");
    }
    return 0;
}

 

 

Output:

Enter the row and column of first matrix:3
3
Enter the row and column of second matrix:3
3
Enter first matrix:
Enter element mat1[1][1]:1
Enter element mat1[1][2]:2
Enter element mat1[1][3]:3
Enter element mat1[2][1]:4
Enter element mat1[2][2]:5
Enter element mat1[2][3]:6
Enter element mat1[3][1]:7
Enter element mat1[3][2]:8
Enter element mat1[3][3]:9
Enter second matrix:
Enter element mat2[1][1]:10
Enter element mat2[1][2]:11
Enter element mat2[1][3]:12
Enter element mat2[2][1]:13
Enter element mat2[2][2]:14
Enter element mat2[2][3]:15
Enter element mat2[3][1]:16
Enter element mat2[3][2]:17
Enter element mat2[3][3]:18
Product Matrix is:
84	90	96	
201	216	231	
318	342	366	

 

 

 

5)Write a program to read a string and check for palindrome without using string related function (a string is palindrome if its half is mirror by itself eg: abcdcba).

Source Code: 

#include <stdio.h>

int main(){
    char my_string[40];
    int state = 1, i, length = 0;
    printf("Enter the string to check:");
    scanf("%[^\n]", my_string);
    /* calculating length */
    for(i = 0; my_string[i] != '\0'; i++){
        length++;
    }

    /* checking pallindrome */
    for(i = 0; i <= length/2; i++){
        if(my_string[i] != my_string[length - i -1]){
            state = 0;
            break;
        }
    }

    if(state == 1){
        printf("Entered string is PALLINDROME.\n");
    }else{
        printf("Entered string is NOT PALLINDROME.\n");
    }

    return 0;
}

 

Output:

Enter the string to check:hello olleh
Entered string is PALLINDROME.

 

 

6)Write a program to sort the array of integer numbers of size 15.

 

Source Code: 

#include <stdio.h>
#define N 15

int main()
{
    int int_array[N], i, j, temp;
    printf("Enter the array elements:\n");
    for(i = 0; i < N; i++){
        scanf("%d", &int_array[i]);
    }

    /* swapping logic here */
    for(i = 0; i < N - 1; i++){
        for(j = i + 1; j < N; j++){
            /* ascending sort */
            if(int_array[i] > int_array[j]){
                temp = int_array[i];
                int_array[i] = int_array[j];
                int_array[j] = temp;
            }
        }
    }

    printf("Sorted List is:\n");
    for(i = 0; i < N; i++){
        printf("%d,\t", int_array[i]);
    }

    return 0;
}

 

 

 

Output:

Enter the array elements:
-12
22
34
66
-20
4
2
1
3
45
6
5
99
34
199
Sorted List is:
-20,	-12,	1,	2,	3,	4,	5,	6,	22,	34,	34,	45,	66,	99,	199,