Skip to main content

MATRIX MULTIPLICATION

/**
    Program Name: MATRIX MULTIPLICATION

    Description: This program finds Product of Two Matrices

    Author:  Tauqirul Haque
       
*/



#define ROW1 2    //Change the Dimension According to Your need
#define COL1 2
#define ROW2 2
#define COL2 2



void productMatrix(int matrix[][COL1], int matrixB[][COL2], int productMatrix[][COL2]);
void displayMatrix(int matrix[ROW1][COL2]); //this function displays the matrix

void main()
{
    int matrixA[ROW1][COL1] = { 1,1,1,1 };
    int matrixB[ROW2][COL2] = { 2,2,2,2 };
    int proMatrix[ROW1][COL2]={0};  //this will store the product of two matrices
   
    printf("\nThe Element of the First Matrix is...\n");   
    displayMatrix(matrixA);
   
    printf("\nThe Element of the Second Matrix is ... \n");
    displayMatrix(matrixB);
   
    productMatrix(matrixA,matrixB,proMatrix);
   
    printf("\nThe Product of Matrices are ... \n");
    displayMatrix(proMatrix);
   
}

void productMatrix(int matrixA[ROW1][COL1], int matrixB[ROW2][COL2],int productMatrix[ROW1][COL2])
{
    int i,j,k;
       
    for(i=0;i
    {
        for(j=0;j
        {
             productMatrix[i][j]=0;
           
            for(k=0;k
            {
                productMatrix[i][j] += matrixA[i][k] * matrixB[k][j];
            }
        }
    }
}

void displayMatrix(int matrix[ROW1][COL2])
{
    int i,j;
    printf("\n");
   
    for(int i=0;i
    {
        for(int j=0;j
        {
            printf("%4d",matrix[i][j]);
        }
        printf("\n");
    }
}



Comments

Popular posts from this blog

Singly Linked List

/**     Program Name: Singly Linked List     Description: This Program is for Implemeting Singly Linked List     Author:  Tauqirul Haque         */ struct Linklist {     int item;     struct Linklist *next; }; typedef struct Linklist node; void insertAtBeginning(node **); void createAppendNode(node **); void insertInMiddle(node **); void deleteNode(node **); void displayNode(node **); void countNode(node **);  void searchElement(node **); void reverse(node **); void main() {     node *head = NULL;     int choice = 0;     while(choice != 9)     {             printf("\n\t\t\t1. Add Node At The Beginning ");     printf("\n\t\t\t2. Insert Element in the Middle ");     printf("\n\t\t\t3. Append New Node "); ...

SWAP Two Values without using temporary variable

/**     Program Name: Swap Two Numbers     Description: This Program swaps two number, using XOR     Author:  Tauqirul Haque        */ #include <stdio.h> #include <conio.h> int main() {     int firstNumber, secondNumber;        printf("Enter The First Number :  ");     scanf("%d",&firstNumber);        printf("\nEnter The Second Number :  ");     scanf("%d",&secondNumber);        printf("\n\nNumbers Before Swapping :  %d  <-> %d \n",firstNumber, secondNumber);        firstNumber = firstNumber^secondNumber;     secondNumber = firstNumber^secondNumber;     firstNumber = firstNumber^secondNumber;        printf("\nNumbers After Swapping : ...

Prevent Users From Changing their Passwords

Mostly /usr/bin/passwd command has the following SUID permission (Given Below) -r-s--x--x 1 root root 19348 Jan 12 2008 /usr/bin/passwd The numerical value of the file permission translates to 4411. Whenever a SUID file is executed, the process that runs it, is granted access to the system resources based on the user who owns the file and not the user who created the process. So, we need to remove the SUID for that command, so that the normal users are denied the privileges of updating the file. To do so we use the following command chmod u-s /usr/bin/passwd - OR chmod 511 /usr/bin/passwd