// // main.c // T1_Ej12 // // Created by Mari Paz Guerrero Lebrero on 14/1/15. // Copyright (c) 2015 Mari Paz Guerrero Lebrero. All rights reserved. // #include #include #define MAXI 20 void InicializaMatriz(int M[][MAXI], int f, int c); void InicializaVector(int v[], int n); void Producto(int M[][MAXI], int f, int c, int v[], int n); int main() { int M[MAXI][MAXI], v[MAXI], f, c, n; printf("Introduzca el numero de filas y de columnas de la matriz: "); scanf("%d%d", &f, &c); InicializaMatriz(M, f, c); do { printf("Introduzca el numero de elementos del vector: "); scanf("%d", &n); if(c != n) printf("ERROR: Es necesario que el numero de columnas de la matriz coincida con el numero de elementos del vector\n"); }while(c != n); InicializaVector(v, n); Producto(M, f, c, v, n); return 0; } void InicializaMatriz(int M[][MAXI], int f, int c) { int i, j; for(i = 0; i < f; i++) { for(j = 0; j < c; j++) { printf("Introduzca elemento M[%d][%d]:", i + 1, j + 1); scanf("%d", &M[i][j]); } } } void InicializaVector(int v[], int n) { int i; for(i = 0; i < n; i++) { printf("Introduzca elemento v[%d]: ", i + 1); scanf("%d", &v[i]); } } void Producto(int M[][MAXI], int f, int c, int v[], int n) { int s[f], i, j, k, suma = 0; for(i = 0; i < f; i++) { for(j = 0; j < c; j++) { suma = 0; for(k = 0; k < c; k++) { suma = suma + (M[i][k] * v[k]); } } s[i] = suma; } printf("El producto es: ["); for(i = 0; i < f; i++) printf("%d ", s[i]); printf("]\n"); }