Stuck on Codes

Discussion in 'C' started by joesmithf1, Jun 8, 2007.

  1. joesmithf1

    joesmithf1 New Member

    Joined:
    Jun 8, 2007
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    0
    Hi

    I have been pulling my hair out trying to figure this out. Please help!!!

    Here is my project description:

    By using a pointer to pointers **A and **B and the function calloc()
    allocate the memory for the 4x4 matrices A[][] and B[][].
    By using the pointers *a and *b and the function malloc()
    allocate the memory for the 4-dimensional vectors a[] and b[].
    Read the components of a and A from the given input file matrix.dat
    (which is in the public/final directory; you need to copy it into your directory).
    The first line of the input file contains the components of a. The rows of
    matrix A are the last four lines of the input file. Print the components
    of a[] and A[][]. By calling the function pmatrix(A,B,a,b,n), n=4,
    which you will construct, determine the components of the matrix B=1.5*A*A, and the
    vector b=(A*a)+0.5*a. Print the components of the matrix B and the vector b in the main.
    Free dinamically allocated memory.
    .................................................. ..............................
    Output should look like:


    Vector a is:
    a[] = -1.200 1.200 -2.000 -0.500
    Matrix A is:
    2.700 1.500 3.200 2.400
    -3.200 0.700 -2.600 4.300
    1.400 0.600 2.100 -1.800
    1.500 1.700 -2.600 -0.700
    Matrix B is:
    ..... ...... ...... ......
    ..... ...... ...... ......
    ..... ...... ...... ......
    ..... ...... ...... ......
    Vector b is:
    b[] = ..... ..... ..... .....


    My codes and I am stuck.

    Code:
    //void prob3(double ***A, double ***B, double **a, double **b)
     void prob3(void)
     {
    	 FILE *matrix;
    	 int k;
    	 double ***A, ***B, **a, **b;
    	 matrix=fopen("matrix.dat", "r");
    
    	 *A= (double**)malloc(sizeof(double*)*4);
    	 *B= (double**)malloc(sizeof(double*)*4);
    	 *a= (double*)malloc(sizeof(double)*4);
    	 *b= (double*)malloc(sizeof(double)*4);
    
    	 for(k=0; k<4; k++)
    		 {
    		 fscanf(matrix, "%lf %lf %lf %lf", &(*A)[k][0], &(*A)[k][1], &(*A)[k][2], &(*A)[k][3]);
    	 }
    	 for(k=0; k<4; k++)
    		 {
    		 fscanf(matrix, "%lf", &(*a)[k]);
    	 }
    	 matrix1(*A, *B, *a, *b, 4);
    
    
     }
    
     void problem3()
     {
    	 double **A, **B, *a, *b;
    	 int row, col;
    
    	 printf("\nMatrix B is:\n\n");
    	 for(row=0; row<4; row++)
    		 {
    		 for(col=0; col<4; col++)
    			 {
    			 printf("%.3f ", B[row][col]);
    		 }
    	 }
    	 printf("\nVector b is: \n\n");
    	 printf("a[] = ");
    	 for(col=0; col<4; col++)
    		 {
    		 printf("%.3f ", b[col]);
    	 }
    	 for(row=0; row<4; row++)
    		 {
    		 free(A[row]);
    		 free(B[row]);
    	 }
    
    	 free(A);
    	 free(B);
    	 free(a);
    	 free(b);
    }
     
    Last edited by a moderator: Jun 8, 2007

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice