Lab 7 (C Programming) Solution
Feb 22, 2019programs 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,