if non zero elements in same column count only once

Posted by George on Stack Overflow See other posts from Stack Overflow or by George
Published on 2014-08-25T10:14:15Z Indexed on 2014/08/25 10:20 UTC
Read the original article Hit count: 140

Filed under:
|

I want to check the elements above the main diagonal and if I found non zero values , count one.

If the non zero values are found in the same column ,then count just one ,not the number of the non zero values.

For example , it should be count = 2 and not 3 in this example because 12 and 6 are in the same column.

A=
     1    11    12
     4     5     6
     0     7     0


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



    int main( int argc, const char* argv[] ){

        int Rows = 3 , Cols = 3;  
        float *A = (float *) malloc ( Rows * Cols * sizeof (float) );


        A[0] = 1.0;
        A[1] = 11.0;
        A[2] = 12.0;
        A[3] = 4.0;
        A[4] = 5.0;
        A[5] = 6.0;
        A[6] = 0.0;
        A[7] = 7.0;
        A[8] = 0.0;

        // print  input matrix 
        printf("\n      Input matrix     \n\n");
        for ( int i = 0; i < Rows; i++ )
            for ( int j = 0; j < Cols; j++ ) {
                printf("%f\t",A[ i * Cols + j ]);
                if( j == Cols-1 )
                    printf("\n");
                }
        printf("\n");


        int count = 0;

        for ( int j = 0 ; j < Cols; j++ ) 
        {

            for ( int i = ( Rows - 1 ); i >= 0; i-- )
            {           


                // check the diagonal elements above the main diagonal
                if ( j > i )
                {
                    if ( ( A[ i * Cols + j ] != 0 )  ) 
                    {
                        printf("\n Above nonzero Elmts = %f\n",( A[i * Cols + j] ) );      
                        count++;
                    }                       
                } 


            }

        } 

        printf("\ncount = %d\n",count );

        return 0;
    }

© Stack Overflow or respective owner

Related posts about c++

Related posts about c