/***** Programa que faz uso de funcao *****/
/*** Veja como o programa principal fica bem limpo ***/
/*** Compare com a solucao da aula anterior ***/
/*
* arquivo: mz_x_vetor.c
* ---------------------
* Este programa determina o produto de uma matriz M(mxn)
* por um vetor x(n).
*/
#include <stdio.h>
#define MMAX 100
#define NMAX 100
/**********************************************************************/
/*
* leia_vetor():
* =============
* Recebe um vetor de double v[] e um inteiro n.
* Le n reais e os coloca em em v[], isto 'e, em
* v[0],...,v[n-1].
*/
void leia_vetor(double v[], int n);
/*
* imprima_vetor():
* ================
* Recebe um vetor de n doubles v[] e o inteiro n
* e imprime v[], isto 'e, imprime v[0],...,v[n-1].
*/
void imprima_vetor(double v[], int n);
/*
* leia_matriz():
* =============
* Recebe uma matriz de doubles a[][NMAX] e inteiros m e n.
* Le m x n reais e os coloca em em a.
*/
void leia_matriz(double a[][NMAX], int m, int n);
/*
* multiplique():
* ==============
* Recebe uma matriz real m x n em a[][NMAX] um vetor v[] com n reais,
* e inteiros m e n. Devolve o produto de a por v em w[].
*
*/
void multiplique(double a[][NMAX], double v[], double w[], int m, int n);
/**********************************************************************/
int main()
{
int m, n;
double M[MMAX][NMAX], x[NMAX], y[MMAX];
printf("Forneca o valor de m e n: ");
scanf("%d %d", &m, &n);
leia_matriz(M, m, n);
leia_vetor(x, n);
multiplique(M, x, y, m, n);
printf("O produto 'e o vetor coluna com entradas\n");
imprima_vetor(y, m);
return 0;
}
/**********************************************************************/
void leia_vetor(double v[], int n)
{
int i;
printf("Forneca o vetor (%d doubles): ", n);
for (i=0; i