Thread: C programming Derive Matrix C from Matrix A and B

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Dec 2019
    Posts
    1

    C programming Derive Matrix C from Matrix A and B

    Need help with a C programming.
    I have two matrixes Matrix A , 10X2 and Matrix B 10X2.<br/>I would like to achieve matrix C in the following format.
    A=
    1 1.24
    2 1.49
    0 0
    0 0
    3 5.69
    4 3.78
    5 2.8
    6 9.2
    0 0
    0 0


    B=
    0 0
    0 0
    8 3.5
    9 4.1
    0 0
    0 0
    0 0
    0 0
    5 1.9
    9 2.5


    We are trying to operate these two matrices and achieve c, where c matrix looks like following, only mentioning the first colomn here
    C=
    9-8
    9-8
    0
    0
    9-5
    9-5
    9-5
    9-5
    0
    0

    Column 1 of C matrix is constructed like this. First, it will search the first column of B Matrix for a non-zero value, in the given example, it has found 8 and then 9 from the B Matrix. Then it will store 8 as low value, and 9 as high. It can be more values, but in this case, it was these two values. So after finding the low and high value it will put ‘High – Low’ in this case 9 – 8 and then it will search 1st column of Matrix A and replace with the ‘High – Low’ in this case 9 – 8, in the non zero places just before the group, as shown in Matrix C.


    tried with the following code

    Code:
    #include <stdio.h><br/>
    
    
    int main()<br/>
    {<br/>
        int B[]={0,0,8,9,0,0,0,0,5,9};<br/>
        int A[]={1,2,0,0,3,4,5,6,0,0};<br/>
        
        int n=0, x=0, y=0;
        int high=0, low=0, result=0;
        int i=0, j=0;    
        int C[n];
    
    
        n=sizeof(B)/sizeof(B[0]);
    
    
        printf("Length of B: %d \n",n);
    
    
        //Print b
        printf("Print B:");
        for(i=0;i<n;i++)
        {
            printf("%d \t",B[i]);
        
    }
        printf("\n");
    
    
        for(i=0;i<n;i++)
        {
            if(B[i]==0)
            {
                C[i]=B[i];
            }
    
    
            if((B[i]!=0)&&(i==0))
            {
                x=i;
                low=B[0];
                printf("Print low1:%d\n",low);
            }
            else if((B[i]==0)&&(B[i+1]!=0))
            {
                x=i+1;
                low=B[i+1];
                printf("Print low2:%d\n",low);
            }<br/>
     if((B[i]!=0)&&(B[i+1]==0))<br/>
            {<br/>
                y=i;<br/>
                high=B[i];<br/>
                printf("Print high1:%d\n",high);<br/>
    
    
                result=high-low;
    
    
                for(j=x;j<=y;j++)
                {
                    C[j]=result;
                }
            }
            else if((B[i]!=0)&&(i==n-1))
            {
                y=i;
                high=B[i];
                printf("Print high2:%d\n",high);
    
    
                result=high-low;
        
                for(j=x;j<y;j++)
                {
                    C[j]=result;
                }
            }<br/>
      if((B[i-1]==0)&&(B[i]!=0)&&(i==n-1))<br/>
            {<br/>
                C[i]=B[i];<br/>
            }​
    
    
        }
    
    
        //Print C
        printf("Print C:");
        for(i=0;i<n;i++)
        {
            printf("%d \t",C[i]);
        }
        printf("\n");
    }
    I am stuck a big time, any help will be appreciated
    Last edited by learner_sweden; 12-16-2019 at 04:44 AM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 10
    Last Post: 12-21-2016, 12:20 AM
  2. Replies: 5
    Last Post: 01-06-2016, 01:15 AM
  3. Replies: 2
    Last Post: 05-19-2014, 07:32 PM
  4. Need help in Matrix Addition & finding Inverse of a Matrix
    By ssatyan.129 in forum C Programming
    Replies: 6
    Last Post: 05-15-2009, 02:48 PM
  5. Matrix: Reloaded + Enter The Matrix (the game)
    By LuckY in forum A Brief History of Cprogramming.com
    Replies: 10
    Last Post: 04-18-2003, 12:35 AM

Tags for this Thread