Necesito una función que reciba como parámetros N valores para el vector A y vector B y regrese A*B

Saludos... Tengo un problemillla en turbo c.
Necesito una función que reciba como parámetros N valores para el vector A y vector B y regrese A*B el producto escalar.
Nunca he hecho una función
¿Cómo se hace?
Lo que va adentro creo que puedo hacerlo
//Estos son los dos vectores, el maestro me dijo que podía dar de entrada N, ¿pero lomo lo tengo esta bien?
Claro que falta declarar la función y no se que más vaya...
A[ ]={3,4,5,6};
B[ ]={7,8,9,10};
//y luego pondria un for
for(i=0;i<N;i++){
r=A+B;
printf("
El producto de cada uno es",r);
}
¿Esta bien lo que hice?
Que cambio hago..
Y ya que esta creada la función, como la llamo desde la funcionm main.
Como llamo a la función.
Espero me hayan entendido..
Gracias por la ayuda.

1 Respuesta

Respuesta
1
No se si lo he entendido bien. Te explico,
Yo he entendido que tienes dos arrays de vectores 2D o 3D y quieres calcular el producto escalar de cada uno de esos dos vectores.
Si U, V son dos vectores en 3D esto es: (ux, uy, uz), (vx, vy, vz). El producto escalar es un real que se calcula como:
prod=ux*vx+uy*vy+uz*vz;
entonces, el programa quedaria como:
struct Vector{
int x,y,z;
};
int productoEscalar(Vector a, Vector b) {
return(a.x*b.x+a.y*b.y+a.z*b.z);
}
void calculaProductoEscalar(Vector a[], Vector b[], int c[],int numElementos) {
int i=0;
for(i=0;i<numElementos;i++) {
c=productoEscalar(a,b);
}
}
int main(int argc, char* argv[]) {
Vector A[]={{3,4,5},{6,1,-1},{0,0,-1}};
Vector B[]={{7,8,9},{10,0,-1},{-1,-1,-5}};
int C[]={0,0,0};
//definimos dos arrays de vectores 3D.
//un array de resultados
//tienes 3 elementos, no N
calculaProductoEscalar(A,B,C,3);
}
A ver si he acertado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas