Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Stuck on Codes (http://www.go4expert.com/forums/stuck-on-codes-t4597/)

joesmithf1 8Jun2007 04:37

Stuck on Codes
 
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);
}



All times are GMT +5.5. The time now is 07:22.