Título: Probelma en C. Ayuda!!! Publicado por: jhonsc en 14 Enero 2012, 15:12 pm Buenas, estoy aprendiendo C (tengo un nivel muy bajo), y al hacer un programa con este código:
Código ...no obtengo el resultado esperado. En vex de esto obtengo el mensaje de que no he introducido ningún operador: Código: $ gcc -o ys pasa.c Título: Re: Probelma en C. Ayuda!!! Publicado por: Gallu en 14 Enero 2012, 17:08 pm Hola he visto que estabas usando tipos de datos incorrectos para lo que quieres hacer , la variable operador no la puedes recuperar con atoi , recuerda que es un signo , y un signo, he tocado tu código , ahora ya funciona...
Código
Título: Re: Probelma en C. Ayuda!!! Publicado por: rir3760 en 14 Enero 2012, 17:18 pm Todo correcto salvo un detalle: no se debe utilizar la función "strcmp" de esa forma ya que "operador" no es un array, solo se puede almacenar en esta un carácter.
Basta con utilizar directamente el valor del carácter argv[2][0] o bien copiar este en la variable operador: Código
Un saludo Título: Re: Probelma en C. Ayuda!!! Publicado por: Xandrete en 14 Enero 2012, 19:30 pm Oh, y otra cosa. No tiene nada que ver con programación en C/C++ pero tengo que decirlo >.<
"Utilice" va con c, no con z. ¡No te lo tomes a mal, por favor! A mí me gustaría que me corrigieran si me equivoco ;) ¡Saludos! Título: Re: Probelma en C. Ayuda!!! Publicado por: jhonsc en 14 Enero 2012, 19:53 pm No me lo tomo a mal para nada, tranquilo. Gracias por la ayuda!
Título: Re: Probelma en C. Ayuda!!! Publicado por: jhonsc en 15 Enero 2012, 15:45 pm Siento salir ahora con otra duda, pero, si quiero sumar dos decimales, y que el resultado se decimal que hago?¿ Esto es lo que llevo:
Código El resultado es esta: Código: $ ./pam 3.5 + 3.4 Código: $ ./pam 3.5 + 3.4 Título: Re: Probelma en C. Ayuda!!! Publicado por: rir3760 en 15 Enero 2012, 16:09 pm El problema se debe a que estas utilizando la función "atoi" para la conversión y ella es quien descarta (mas bien se detiene al encontrar) la parte decimal.
Sustituye el uso de esa función por "atof", su uso es similar pero retorna un numero de punto flotante (tipo double). Un saludo Título: Re: Probelma en C. Ayuda!!! Publicado por: jhonsc en 15 Enero 2012, 16:25 pm Ya lo hice y me salió lo siguiente: (este es otro ejemplo, pero el error al utilizar atof es el mismo que con el código completo, lo hago para ahorrar espacio)
Código Salida: Código:
Título: Re: Probelma en C. Ayuda!!! Publicado por: rir3760 en 15 Enero 2012, 18:18 pm Antes de utilizar una función debes tener acceso a su prototipo y eso se realiza incluyendo el encabezado que corresponda. En el caso de atoi y atof es <stdlib.h>.
Ello porque cuando se llama a una función sin tener acceso al prototipo de esta se asume lo siguiente: 1) El numero de argumentos que recibe esta dado en la llamada. 2) El valor de retorno es int. Un saludo Título: Re: Probelma en C. Ayuda!!! Publicado por: jhonsc en 15 Enero 2012, 18:26 pm Muchísimas gracias de nuevo.
|