Wednesday, January 6, 2016

13) Inmultirea unui vector cu o matrice (subprogram+alocare dinamica)

Sa se scrie programul care afiseaza rezultatul inmultirii unui vector cu o matrice folosind un subprogram. Elementele matricei si ale vectorului se vor citi de la tastatura.

  

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

void produs(int a[20][20], int b[], int *c, int dim) {
    int j,k;
    for(j=0;j<dim;j++) {
        c[j] = 0;
        for(k=0;k<dim;k++) {
            c[j] += b[k]*a[k][j];
        }
    }
}


int main() {
    int a[20][20], b[20], *c;
    int i,j,n,m;
     c = (int*)malloc(m*sizeof(int));
    printf("Numar linii: "); scanf("%d", &n);
    printf("Numar coloane: "); scanf("%d", &m);

    for (i=0;i<n;i++) {
        for(j=0;j<m;j++) {
            printf("a[%d][%d] =", i,j); scanf("%d", &a[i][j]);
        }
    }

    for(i=0;i<m;i++) {
        printf("b[%d] =", i); scanf("%d", &b[i]);
    }

    produs(a, b, c, m);
    puts("Vectorul rezultat: ");
    for(i=0;i<m;i++) {
        printf("c[%d] = %d \n",i,c[i]);
    }

    free(c);

}




No comments:

Post a Comment