elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Que error cometo aqui???????? Ayudaaaaa!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Que error cometo aqui???????? Ayudaaaaa!  (Leído 3,180 veces)
LobateZZZ

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Que error cometo aqui???????? Ayudaaaaa!
« en: 13 Abril 2013, 12:38 pm »


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.


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Que error cometo aqui???????? Ayudaaaaa!
« Respuesta #1 en: 13 Abril 2013, 14:57 pm »

Para invocar o llamar a una función no se declara el tipo de ella ni de sus argumentos:

Código
  1. demostracion();

Saluditos!. ....


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Que error cometo aqui???????? Ayudaaaaa!
« Respuesta #2 en: 13 Abril 2013, 16:00 pm »

El mensaje de error en la linea 49:
Código
  1. scanf("%d %d %d", &equis1, equis2 /* <== */, &equis3);
Se genera porque en el tercer argumento te falta el operador "dirección de" (el '&').

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Que error cometo aqui???????? Ayudaaaaa!
« Respuesta #3 en: 13 Abril 2013, 16:04 pm »

El mensaje de error en la linea 49:
Código
  1. scanf("%d %d %d", &equis1, equis2 /* <== */, &equis3);
Se genera porque en el tercer argumento te falta el operador "dirección de" (el '&').

El error de la linea 51:
Código
  1. modulo = mod(equis1,equis2,equis3);
  2. printf("El módulo será: %f\n", mod /* <== */);
Se debe a que utilizas "mod" (el nombre de la función) cuando debería ser "modulo" (el nombre de la variable).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
LobateZZZ

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Que error cometo aqui???????? Ayudaaaaa!
« Respuesta #4 en: 13 Abril 2013, 16:29 pm »

Muchisimas gracias  a todos, por fin he terminado el trabajo.   ;-) ;-) ;-) ;-) ;-)
Y por cierto, perdonad esos fallos, porque la verdad es que me dan vergüenza, pero no era capaz a verlos.
Un saludo a todos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayudaaaaa!!!!!
Juegos y Consolas
gishE 4 2,390 Último mensaje 8 Abril 2005, 07:06 am
por gishE
Personalizar error del include [Solucionado y código aquí]
PHP
dimitrix 5 4,282 Último mensaje 9 Enero 2008, 22:43 pm
por dimitrix
Ayudaaaaa
Software
Mifastur 3 1,896 Último mensaje 1 Febrero 2011, 01:07 am
por SuperDraco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines