Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Cleantesdeasso en 2 Agosto 2010, 21:15 pm



Título: Duda Celsius a Fahrenheit en C
Publicado por: Cleantesdeasso en 2 Agosto 2010, 21:15 pm
Muy buenas.
 Me descargue un libro de los q hay posteados, y ya al 4tº ejercicio, me quede trabado. (por supuesto q no me importa, y puedo seguir para adelante con el proximo, pero me gustaria sacarme algunas dudas q estoy seguro podeis ayudarme)
 El programita se supone deberia sacar una tabla con las equivalencias entre grados celsius y fahrenheit, y copiando el ejercicio de fahrenheit a celsius todo de perlas... pero ahora al invertir el proceso de celsius a fahr se keda esperando el guion y no me carga otra cosa q el primer printf. Aki lo q escribi:
Código
  1. #include <stdio.h>
  2. main()
  3. {
  4.    printf("Cersio Falenjai\n");
  5.    float fahr;
  6.    int lower, upper, step, celsius;
  7.  
  8.    lower= 0;
  9.    upper= 148;
  10.    step= 10;
  11.  
  12.    celsius= lower;
  13.    while (celsius <= upper); {
  14.     fahr= (32 * 5/9);
  15.     printf("%3.0f\t %3.1f\n", celsius, fahr);
  16.     celsius= celsius + step;
  17.     }
  18.  
  19. }

Claro, tampoco la cuenta esta bien. Pero es q si le ponia otros caracteres, ni sikiera la cargaba. Q es lo k esta mal? Porq al poner un . como para multiplicar, no lo hace y me dice q hay un error? La x tampoco lo hace... Cual es el simbolo de multiplicar??! ARRGHH! Ojala alguien se digne a ayudarme, de cualkier manera, seguire leyendo y la respuesta la encontrare en el libro :D Tanx


Título: Re: Rookie perdido
Publicado por: do-while en 2 Agosto 2010, 21:28 pm
¡Buenas!

Justo despues del while has puesto punto coma, por lo que el cuerpo del while queda vacio y acto seguido con el printf lo unico que imprimes es el primer resultado, ya que las cuentas quedan fuera del while.

Has cometido uno de los errores mas tipico en principiantes y profesionales, y no sera la ultima vez que lo cometas. Sobre todo intenta no cometer los siguientes errores (aunque como te he dicho, siempre se te escapara alguno)
Código
  1. /* las siguientes estructuras de control tienen el cuerpo vacio, ya que hay un punto coma donde no deberia haberlo */
  2. if();
  3. {
  4. }
  5.  
  6. if()
  7. {
  8. }
  9. else;
  10.  
  11. for(;;);
  12. {
  13. }
  14.  
  15. /* este es el que hay en tu codigo */
  16. while();
  17. {
  18. }
  19.  

¡Saludos!


Título: Re: Duda Celsius a Fahrenheit en C
Publicado por: Cleantesdeasso en 3 Agosto 2010, 02:07 am
Gracias Do-while, sabia q no podia ser asi...
 Tal vez yo sea muy torpe (lo mas probable), pero tambien es probable q alguien se fuera ekivocado en el libro al traducirlo. Esta madrugada va a ser muuuuy larga... Ya comentare mis pormenores. EOF.
 Gracias!:)