C Programming Tutorial

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

#define MAX 3

void matrix ( int [3][3] ) ;
void create ( int [3][3] ) ;
void display ( int [3][3] ) ;
void matmul ( int [3][3], int [3][3], int [3][3] ) ;
void transpose ( int [3][3], int [3][3] ) ;
int determinant ( int [3][3] ) ;
int isortho ( int [3][3] ) ;

void main( )
{
    int mat [3][3], d ;

    clrscr( ) ;

    printf ( \"\\nEnter elements for array: \\n\\n\" ) ;
    create ( mat ) ;

    printf ( \"\\nThe Matrix: \\n\" ) ;
    display ( mat ) ;

    d = determinant ( mat ) ;
    printf ( \"\\nThe determinant for given matrix: %d.\\n\", d ) ;

    if ( d == 0 )
        printf ( \"\\nMatrix is singular.\\n\" ) ;
    else
        printf ( \"\\nMatrix  is not singular.\\n\" ) ;

    d = isortho ( mat ) ;

    if ( d != 0 )
        printf ( \"\\nMatrix is orthogonal.\\n\" ) ;
    else
        printf ( \"\\nMatrix is not orthogonal.\\n\" ) ;

    getch( ) ;
}

/* initializes the matrix mat with 0 */
void matrix ( int mat[3][3] )
{
    int i, j ;
    for ( i = 0 ; i < MAX ; i++ )
    {
        for ( j = 0 ; j < MAX ; j++ )
            mat[i][j] = 0 ;
    }
}

/* creates matrix mat */
void create ( int mat[3][3] )
{
    int n, i, j ;
    for ( i = 0 ; i < MAX ; i++ )
    {
        for ( j = 0 ; j < MAX ; j++ )
        {
            printf ( \"Enter the element: \" ) ;
            scanf ( \"%d\", &n ) ;
            mat[i][j] = n ;
        }
    }
}

/* displays the contents of matrix */
void display ( int mat[3][3] )
{
    int i, j ;
    for ( i = 0 ; i < MAX ; i++ )
    {
        for ( j = 0 ; j < MAX ; j++ )
            printf ( \"%d\\t\", mat[i][j] ) ;
        printf ( \"\\n\" ) ;
    }
}

/* multiplies two matrices */
void matmul ( int mat1[3][3], int mat2[3][3], int mat3[3][3] )
{
    int i, j, k ;
    for ( k = 0 ; k < MAX ; k++ )
    {
        for ( i = 0 ; i < MAX ; i++ )
        {
            mat3[k][i] = 0 ;
            for ( j = 0 ; j < MAX ; j++ )
                mat3[k][i] += mat1[k][j] * mat2[j][i] ;
        }
    }
}

/* obtains transpose of matrix m1 */
void transpose ( int mat[3][3], int m[3][3] )
{
    int i, j ;
    for ( i = 0 ; i < MAX ; i++ )
    {
        for ( j = 0 ; j < MAX ; j++ )
             m[i][j] = mat[j][i] ;
    }
}

/* finds the determinant value for given matrix */
int determinant( int mat[3][3] )
{
    int sum, i, j, k, p ;
    sum = 0 ; j = 1 ; k = MAX - 1 ;

    for ( i = 0 ; i < MAX ; i++ )
    {
        p = pow ( -1, i ) ;

        if ( i == MAX - 1 )
            k = 1 ;
        sum = sum + ( mat[0][i] * ( mat[1][j] *
                                    mat[2][k] - mat[2][j] *
                                    mat[1][k] ) ) * p ;
        j = 0 ;
    }

    return sum ;
}

/* checks if given matrix is an orthogonal matrix */
int isortho ( int mat[3][3] )
{
    /* transpose the matrix */
    int m1[3][3], m2[3][3], i ;
    transpose ( mat, m1 ) ;

    /* multiply the matrix with its transpose */
    matmul ( mat, m1, m2 ) ;

    /* check for the identity matrix */
    for ( i = 0  ; i < MAX ; i++ )
    {
        if ( m2[i][i] == 1 )
            continue ;
        else
            break ;
    }
    if ( i == MAX )
        return 1 ;
    else
        return 0 ;
}

    Related Post:
  1. Program to find vowel Occurances from a given string

  2. Program to find the maximum and minimum element in an array using threads

  3. Program to find total vowels in the string

  4. Program to calculate roots of 3 numbers using root1 = (-b + sqrt(discriminant))/(2.0*a) and root2 = (-b - sqrt(discriminant))/(2.0*a) formula

  5. Program to concatenate one linked list at end of another and than to erase all nodes present in the linked list

  6. Program of telephone directory that provides append, find and display all records from a file

  7. PROGRAM FOR SECANT METHOD OF PARTICULAR EQUATION IS log(x)-cos(x)

  8. Program to print Power of 2 table using for loop

  9. Program to read the following numbers,round them off to the nearest integers and print out the results in integer form: 35.7 50.21 -23.73 -46.45

  10. Program to delete a specified file using Interrupt 21h

  11. Program to print triangle of numbers in reverse pattern

  12. Program that shows how to perform explicit cast of a variable

  13. PROGRAM TO FIND ANSWER OF THE FOLLOWING SERIES. INPUT STEPS FROM KEYBORD. SUM=X-X3/3!+X5/5!-X7/7!+...(TAKE VALUE OF X ALSO).

  14. Program to save the Interrupt Vector Table (IVT) in a file

  15. Program that uses while loop and calculate sum of every third integer number with i=2 (i.e. sum = 2+5+8+11+.) for values of I that is less than 100

  16. PICARDS METHOD

  17. Linear search in a sorted array

  18. Program for block scheduling technique to solve following expression x[i]=x[i+1]

  19. Program to print triangle of numbers and take number value from user

  20. Program to find process id and parent process id

 
 
Didn't find what you were looking for? Find more on Program for matrix operations like dertminant, singular, etc