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,