Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <assert.h>
- /* Prototypes */
- int **mm(int **a, int **b, int l, int m, int n);
- int **init_array(int **array, int row, int col);
- void print_ar(int **array, int row, int col);
- /* Computation step */
- int **mm(int **a, int **b, int l, int m, int n)
- {
- int i,j,k;
- int **c;
- for (i = 0; i < l-1; i++) {
- for (j = 0; j < n-1; j++) {
- c[i][j] = 0;
- for (k = 0; k < m-1; k++) {
- c[i][j] += a[i][k] * b[k][j];
- }
- }
- }
- return c;
- }
- void print_ar(int **array, int row, int col)
- {
- int i,j;
- for (i = 0; i < row; i++) {
- for (j = 0; j < col; j++) {
- printf(" %d", array[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- }
- int **init_array(int **array, int row, int col)
- {
- int i,j;
- for (i = 0; i < row; i++) {
- for (j = 0; j < col; j++) {
- array[i][j] = (col) + (row % 2); //+ rand();
- }
- }
- return array;
- }
- int main(int argc, char *argv[])
- {
- int **a, **b, **ret;
- int i, l, m, n;
- l = 2;
- m = 3;
- n = 4;
- assert((a = malloc(l * sizeof(double *))) != NULL);
- assert((b = malloc(m * sizeof(double *))) != NULL);
- for (i = 0; i < m; i++)
- assert((a[i] = malloc(m * sizeof(double))) != NULL);
- for (i = 0; i < n; i++)
- assert((b[i] = malloc(n * sizeof(double))) != NULL);
- a = init_array(a,l,m);
- b = init_array(b,m,n);
- print_ar(a,l,m);
- print_ar(b,m,n);
- ret = mm(a,b,l,m,n);
- print_ar(ret,l,n);
- return 0;
- }
Add Comment
Please, Sign In to add comment