ayuda con multiplicacion de n numeros complejos

Iniciado por cho250425, 27 Noviembre 2016, 15:58 PM

0 Miembros y 1 Visitante están viendo este tema.

cho250425

hola, el programa tiene que sumar,restar y multiplicar n numeros complejos, la suma y la resta ya la tengo pero en la multiplicacion estoy atorado no tengo una idea clara de como hacerlo me podrían ayudar porfavor

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

void LeerInt(int*, int*,int*,char*);
void ImprInt(int*,int*,int,char*);
int suma(int*,int*,int);
int resta(int*,int*,int);
int multiplicacion(int*,int*,int);
int main(){
int x[50];
int d[50];
int n;
LeerInt(x,d,&n,"NUMERO");
ImprInt(x,d,n,"NUMERO");
suma(x,d,n);
resta(x,d,n);
multiplicacion(x,d,n);
return 0;
}
void LeerInt(int *x,int *d,int *m,char*nom){
int i;
printf("\n\t CUANTOS NUMEROS COMPLEJOS SON: ");
scanf("%i",m);
for(i=0;i<*m;i++){
printf("\n\t  INGRESE LA PARTE REAL DEL %s[%i]:", nom,i+1);
scanf("%d", &x[i]);
}
for(i=0;i<*m;i++){
printf("\n\t  INGRESE LA PARTE IMAGINARIA DEL %s[%i]:", nom,i+1);
scanf("%d", &d[i]);}
return;
}

void ImprInt(int*y,int*t,int m,char*nom){
int i;
printf("\n\t LOS DATOS SON:");
for(i=0;i<m;i++){
printf("\n\t LOS NUMEROS COMPLEJOS SON: %s[%i]=%d + %ij",nom,i+1,y[i],t[i]);}
return;}
int suma (int *x,int *d, int m){
int i;
int s=0.0,f=0.0;
for(i=0;i<m;i++){
s+= x[i];}
for(i=0;i<m;i++){
f+= d[i];}
printf("\n\t LA SUMA DE LOS NUMEROS ES %i+ %i j",s,f);
return;
}
int resta (int *x,int *d, int m){
int i;
int s=x[0],f=d[0];
for(i=1;i<m;i++){
s = s-x[i];}
for(i=1;i<m;i++){
f = f-d[i];}
if (f>=0){
printf("\n\t LA RESTA DE LOS NUMEROS ES %i + %i j",s,f);
}
else
{
   printf("\n\t LA RESTA DE LOS NUMEROS ES %i%ij",s,f);
}
return;
}
int multiplicacion(int*x,int*d,int m){
int i,r=1,c=1,v=1;
for(i=0;i<m;i++){
r= r*x[i];} // multiplicacion de reales
for(i=0;i<m;i++){
c= c*d[i];}
//multiplicacion de imaginarios
for(i=0;i<m;i++){
v=v*x[i]*d[i];}
}

ivancea96

http://www.ditutor.com/numeros_complejos/multiplicacion_complejos.html

Ve número a número. Colocas el primero en variables (r, im, por ejemplo). Luego, lo multiplicas por el siguiente y lo almacenas en esas mismas variables. Y así por cada uno de los restantes. Que el producto quede siempre en esas variables. Y ya luego, las muestras.

De todos modos, no sé si entendí bien lo que hace tu programa.
Unos consejos importantes:
- Tabula el código.
- Separa las funciones por 1 salto de línea al menos.
- Utiliza la misma forma de nombrar las funciones (si las funciones empiezan por mayúscula, vale. Si empiezan por minúscula, así sea. Pero no mezcles nomenclaturas)
- Si una función void termina, no necesitas ponerle "return;" al final. Pero bueno, pónselo si quieres, solo comento.