Hola amigos, vereis, al compilar me sale un error en la linea 93, que es donde llamo a la funcion demostracion, lo he señalado con 3 fantasmitas blancos para que no haya que buscar.
El error que me da es el siguiente: " error: expected expression before ‘void’"
¿Que error cometo? ¿Me falta poner algo o quitar?
Luego me da dos avisos, pero con esto creo que el programa funciona igual, no obstante si me podeis echar una mano, aqui están los avisos:
En la función ‘main’:
prac.c:49:3: aviso: formato ‘%d’ espera un argumento de tipo ‘int *’, pero el argumento 3 es de tipo ‘int’ [-Wformat]
prac.c:51:3: aviso: formato ‘%f’ espera un argumento de tipo ‘double’, pero el argumento 2 es de tipo ‘int (*)(int, int, int)’ [-Wformat]
Código:
#include <stdio.h>
#include <math.h>
void suma(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3);
void resta(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3);
int mod(int equis1, int equis2, int equis3);
int mod1(int jota1, int jota2, int jota3);
void escalar_por_vector(int jota1, int jota2, int jota3, int escalar1);
int producto_escalar(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3);
void producto_vectorial(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3);
void listar_componentes(int equis1, int equis2, int equis3);
void listar_componentes1(int jota1, int jota2, int jota3);
void demostracion();
int main(){
int efe,equis1,equis2,equis3,jota1,jota2,jota3,zeta1,zeta2,zeta3,escalar1,resultado;
float modulo, modulo1;
printf("Indtroduzca la operación a realizar:\n");
printf("1) Suma de vectores\n");
printf("2) Resta de vectores\n");
printf("3) Módulo de un vector\n");
printf("4) Producto de un escalar por un vector\n");
printf("5) Producto escalar por dos vectores\n");
printf("6) Producto vectorial de dos vectores\n");
printf("7) Listar componentes\n");
printf("8) Demostración\n");
scanf("%d",&efe);
switch (efe){
case 1:
printf("Introduzca 3 valores para el vector 1:\n");
scanf("%d %d %d", &equis1, &equis2, &equis3);
printf("Introduzca 3 valores para el vector 2:\n");
scanf("%d %d %d", &jota1, &jota2, &jota3);
suma(equis1,equis2,equis3,jota1,jota2,jota3);
break;
case 2:
printf("Introduzca 3 valores para el vector 1:\n");
scanf("%d %d %d", &equis1, &equis2, &equis3);
printf("Introduzca 3 valores para el vector 2:\n");
scanf("%d %d %d", &jota1, &jota2, &jota3);
resta(equis1,equis2,equis3,jota1,jota2,jota3);
break;
case 3:
printf("Introduce las coordenadas de un vector:\n");
scanf("%d %d %d", &equis1, equis2, &equis3);
modulo = mod(equis1,equis2,equis3);
printf("El módulo será: %f\n", mod);
break;
case 4:
printf("Introduce las coordenadas de un vector:\n");
scanf("%d %d %d", &jota1, &jota2, &jota3);
printf("Introduce un escalar: \n");
scanf("%d", &escalar1);
escalar_por_vector(jota1, jota2, jota3, escalar1);
break;
case 5:
printf("Introduzca 3 valores para el vector 1:\n");
scanf("%d %d %d", &equis1, &equis2, &equis3);
printf("Introduzca 3 valores para el vector 2:\n");
scanf("%d %d %d", &jota1, &jota2, &jota3);
resultado = producto_escalar(equis1,equis2,equis3,jota1,jota2,jota3);
printf("%d \n", resultado);
break;
case 6:
printf("Introduzca 3 valores para el vector 1:\n");
scanf("%d %d %d", &equis1, &equis2, &equis3);
printf("Introduzca 3 valores para el vector 2:\n");
scanf("%d %d %d", &jota1, &jota2, &jota3);
producto_vectorial(equis1,equis2,equis3,jota1,jota2,jota3);
break;
case 7:
printf("Introduzca 3 valores para el vector:\n");
scanf("%d %d %d", &equis1, &equis2, &equis3);
listar_componentes(equis1,equis2,equis3);
break;
case 8:
equis1=1;
equis2=2;
equis3=3;
jota1=4;
jota2=5;
jota3=6;
escalar1=2;
demostracion(void); >:( >:( >:(
break;
}
return 0;
}
void suma(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3){
int zeta1,zeta2,zeta3;
zeta1=equis1+jota1;
zeta2=equis2+jota2;
zeta3=equis3+jota3;
printf("(%d, %d, %d)\n", zeta1,zeta2,zeta3);
}
void resta(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3){
int zeta1,zeta2,zeta3;
zeta1=equis1-jota1;
zeta2=equis2-jota2;
zeta3=equis3-jota3;
printf("(%d, %d, %d)\n", zeta1,zeta2,zeta3);
}
int mod(int equis1, int equis2, int equis3){
float modulo;
modulo = sqrt((equis1*equis1)+(equis2*equis2)+(equis3*equis3));
return(modulo);
}
int mod1(int jota1, int jota2, int jota3){
float modulo1;
modulo1 = sqrt((jota1*jota1)+(jota2*jota2)+(jota3*jota3));
return(modulo1);
}
void escalar_por_vector(int equis1, int equis2, int equis3, int escalar1){
int zeta1,zeta2,zeta3;
zeta1=equis1*escalar1;
zeta2=equis2*escalar1;
zeta3=equis3*escalar1;
printf("(%d, %d, %d)\n", zeta1,zeta2,zeta3);
}
int producto_escalar(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3){
int resultado;
resultado = ((equis1*jota1)+(equis2*jota2)+(equis3*jota3));
return (resultado);
}
void producto_vectorial(int equis1, int equis2, int equis3, int jota1, int jota2, int jota3){
int zeta1, zeta2, zeta3;
zeta1=((equis2*jota3)-(equis3*jota2));
zeta2=((equis1*jota3)-(equis3*jota1));
zeta3=((equis1*jota2)-(equis2*jota1));
printf("%d %d %d\n",zeta1, zeta2, zeta3);
}
void listar_componentes(int equis1, int equis2, int equis3){
printf("%d %d %d\n", equis1, equis2, equis3);
}
void listar_componentes1(int jota1, int jota2, int jota3){
printf("%d %d %d\n", jota1, jota2, jota3);
}
void demostracion(void){
int equis1, equis2, equis3, jota1, jota2, jota3, modulo, modulo1, resultado,escalar1;
suma(equis1,equis2,equis3,jota1,jota2,jota3);
resta(equis1,equis2,equis3,jota1,jota2,jota3);
modulo = mod(equis1,equis2,equis3);
modulo1 = mod1(jota1,jota2,jota3);
escalar_por_vector(jota1, jota2, jota3, escalar1);
resultado = producto_escalar(equis1,equis2,equis3,jota1,jota2,jota3);
producto_vectorial(equis1,equis2,equis3,jota1,jota2,jota3);
listar_componentes(equis1,equis2,equis3);
listar_componentes1(equis1,equis2,equis3);
}
Gracias a todos los que me ayudeis.