Título: Ayuda con funciones. Publicado por: JimP en 30 Mayo 2017, 06:15 am Hola, necesito un programa que use funciones creadas por uno mismo y probé este codigo
Código: #include <stdio.h> El problema es que al entrar a la opción 1 la variable a toma el valor de 29, el cual no debería cambiar, pero al entrar a las otras 3 opciones muestra que a toma el valor del número de la opción ingresada. Por favor alguien me puede ayudar con lo que pasa en el código. Título: Re: Ayuda con funciones. Publicado por: MAFUS en 30 Mayo 2017, 09:15 am En la construcción switch/case el código salta a la etiqueta elegida. Por ejemplo, al elegirse la opción 3 el programa no sabe nada de la asignación de a ni de la asignación de b por tanto esos datos son indefinidos.
Título: Re: Ayuda con funciones. Publicado por: JimP en 30 Mayo 2017, 13:24 pm Es cierto, pero mi problema es que se va entrando a las opciones por orden por lo tanto la variable a, b, c se definen antes de ser imprimidas y la variable es la que cambia mientras que las demas continuan con los valores asignados
Título: Re: Ayuda con funciones. Publicado por: engel lex en 30 Mayo 2017, 13:33 pm No, esto no es una función estática, cada vez que se accede a la función es una nueva instancia en memoria creada en blanco... incluso fíjate que tienes
Código: int a,b,c,d; Que indica que estás solicitando memoria para alojar eso En tal caso para eso, a,b,c y D, deberían ser variables globales Por cierto, en mem, te faltó declarar que x es de tipo int y como mem es también de tipo int, debe retornar un valor, tu compilador debe marcarte esos errores Título: Re: Ayuda con funciones. Publicado por: JimP en 30 Mayo 2017, 13:59 pm Mi compilador no me marca tales errores y si me ejecuta el programa.
Este es el resultado: 1.Opcion 1 2.Opcion 2 3.Opcion 3 4.Salir Ingrese una opcion entre 1 y 4: 1 29 1.Opcion 1 2.Opcion 2 3.Opcion 3 4.Salir Ingrese una opcion entre 1 y 4: 2 2 43 1.Opcion 1 2.Opcion 2 3.Opcion 3 4.Salir Ingrese una opcion entre 1 y 4: 3 3 43 55 1.Opcion 1 2.Opcion 2 3.Opcion 3 4.Salir Ingrese una opcion entre 1 y 4: 4 4 43 55 86 -------------------------------- Process exited after 4.485 seconds with return value 0 Presione una tecla para continuar . . . Ahí se ve como el primer número que devuelve, la variable a, siempre cambia según la opción menos la primera vez. Y la demás variables no cambian, si no se mantienen con el valor asignado. Cambie los errores que me dijeron y definí a las 4 variables como globales Código
Y el código si funciona como debería. Gracias!!! Aunque no entiendo todavía porque el compilador no me marcaba esos errores y porque el valor de las otras variables si me guardaba. No hacer doble post Título: Re: Ayuda con funciones. Publicado por: MAFUS en 30 Mayo 2017, 15:30 pm Estarás usando TurboC o TurboC++ de Borland o algún otro compilador pre-ansi con extensiones. Te recomiendo cambiarlo lo más pronto posible para evitarte aprender malos hábitos.
Título: Re: Ayuda con funciones. Publicado por: JimP en 30 Mayo 2017, 16:18 pm Estarás usando TurboC o TurboC++ de Borland o algún otro compilador pre-ansi con extensiones. Te recomiendo cambiarlo lo más pronto posible para evitarte aprender malos hábitos. Pues estoy usando el Dev-C++ y no se por cual cambiarlo.Título: Re: Ayuda con funciones. Publicado por: MAFUS en 30 Mayo 2017, 17:26 pm Eso es un IDE, aunque espero que no sea la versión 4.9.9.2. De todas formas mira si lo que hay en este post te funciona: https://stackoverflow.com/questions/16951376/how-to-change-mode-from-c98-mode-in-dev-c-to-a-mode-that-supports-c0x-ran
Al menos así podrás trabajar con una versión de compilador más moderna. Título: Re: Ayuda con funciones. Publicado por: JimP en 31 Mayo 2017, 04:27 am Bueno muchas gracias a todos.
Lo que estaba en esa página es para C++, pero básicamente si se hace los mismo solo que en lugar de -std=c++11 se pone -std=c11 sirve para C. |