INFORMATICA Y OCIO

Foros de informática
  Inicio    Normas    Buscar   Miembros   Clanes   Regístrese   Perfil   Conéctese para revisar sus mensajes   Conectarse 
[informatica] + [videos graciosos] + [ultimos mensajes] + [top usuarios] + [contacto]
Error compilando en C/C++ ¿Me podriais ayudar?

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
lnxmen
User destacando
User destacando


Registrado: 10 Ene 2007
Mensajes: 287
Ubicación: Alcalá de Henares, Madrid, España

MensajePublicado: Mar Dic 02, 2008 8:52 pm    Título del mensaje: Error compilando en C/C++ ¿Me podriais ayudar? Responder citando
Buenas estoy realizando un ejercicio para clase.

Es simplemente realizar el intercambio de valores entre 2 variables utilizando una funcion.

Código:

#include <stdio.h>

//predefinicion de funciones
int inter(int pa, int pb);

//Funcion main
main()
{
      //declaramos las variables y los punteros a las variables
      int a,b;
      int *pa,*pb;
      char retornocarro;
     
      printf("\n Introduzca valor 1:\n");
      scanf("%d",&a);
      scanf("%c",&retornocarro);
     
      printf("\n Introduzca valor 2:\n");
      scanf("%d",&b);
      scanf("%c",&retornocarro);
     
     pa=&a;
     pb=&b;
     
      //Mostramos el valor de las variables llamando a la funcion inter
      printf("\n El intercambio de A a B es:\n",inter(int pa,int pb));
     
}

//Funcion inter,intercambiara los valores de las variables
int inter(int pa, int pb)
{
    //declaramos variable de intermedia
    int c;
   
    c=pa;
    pa=pb;
    pb=c;
    return 0;
}


Me sale un error muy raro

syntax error : missing ')' before type 'int'
error C2660: 'inter' : function does not take 0 parameters

que parentesis le falta?
como que la funcion no podra tomar 0 parametros?

El error le suelta en esta linea
Código:

printf("\n El intercambio de A a B es:\n",inter(int pa,int pb));


Alguien me podria decir donde me falla o porque me sale ese error?
Muchas gracias anticipadas
_________________
Quis custodiet ipsos custodes?
Volver arriba
Ver perfil del usuario Enviar mensaje privado
JoHnRiPeR
Conociendo Foroz
Conociendo Foroz


Registrado: 15 Ago 2008
Mensajes: 13

MensajePublicado: Mie Dic 03, 2008 12:08 am    Título del mensaje: Responder citando
printf("\n El intercambio de A a B es:\n",inter(*pa,*pb));

De esta forma tiene que compilar, pero no creo que funcione como tu quieres ya que al salir de la función inter todos los cambios hechos en pa y pb no se verán reflejados porque estas pasando los parámetros por valor y no por referencia
Volver arriba
Ver perfil del usuario Enviar mensaje privado
noloweper
Conociendo Foroz
Conociendo Foroz


Registrado: 24 Jun 2008
Mensajes: 22

MensajePublicado: Jue Dic 04, 2008 2:07 pm    Título del mensaje: Responder citando
Buenas creo que tu error está en que t declaras la función intercambiar "int inter(int pa, int pb){" y le das que devuelve int, cuando en realidad no devuelves nada, ya que tienes el return 0.
Tu en una funcion mediante return solo puedes devolver un valor, ahí entonces tienes un problema que se resuelve poniendo tus parámetros de entrada "pa" y "pb" como parámetros de entrada y salida, de esta forma estos valores saldrán del modulo ya modificados, esto se hace de la siguiente forma:
void inter(int &pa, int &pb)
{

es decir para indicar que el valor es de entrada y salida se pone & y como no devuelves nada debes poner void en la función, creo que en c se indica con los & yo uso c++ y si funciona, de todas maneras ese es un fallo no lo he podido probar el programa que esty ahora liado a ver si lo puedo probar luego y veo si funciona, pero de todas maneras lo que yo te he dicho está bien, venga un saludo y suerte!
_________________
Volver arriba
Ver perfil del usuario Enviar mensaje privado
lnxmen
User destacando
User destacando


Registrado: 10 Ene 2007
Mensajes: 287
Ubicación: Alcalá de Henares, Madrid, España

MensajePublicado: Jue Dic 04, 2008 7:39 pm    Título del mensaje: Responder citando
Gracias a los 2 por vuestras respuestas.

Era como decia noloweper con los punteros para poder devolver el valor
_________________
Quis custodiet ipsos custodes?
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro Foroz comunity :: Programación Todas las horas están en GMT + 1 Hora
Página 1 de 1
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
 
Articulos relacionados
En General >> Error que no lo logro entender cuando...
En General >> Error al instalar win xp
En Programación >> ERROR AL INSTALAR EL ARCHIVO WINHTTP.DLL
En Juegos PC >> A ver si me podeis ayudar con un prob...
En Hardware >> Error en los primero 64kb de memoria ...
 

 
Foroz comunity Tema RSS 




by phpBB  
informatica Videos graciosos webmasters theme by Scott Stubblefield Top foroz