Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/02/2012, 22:54
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 4 meses
Puntos: 25
Respuesta: problema con algoritmo en C

Código C++:
Ver original
  1. #include <stdio.h>
  2.  #include <stdlib.h>
  3.  
  4.  main()
  5.  {
  6.  char on, off; /*variables de entrada y salida*/
  7.  while (7<on); /*el 7 es "la hora de encendido"*/
  8.  {
  9.  printf ("%c", on);
  10.  if (8>=on) /*si son mas de las 8 se apaga*/
  11.  printf ("off");
  12.  
  13.  }
  14.  
  15.  return 0;
  16.  system ("pause");
  17.  }

si las variables on y off van a representar la hora de encendido y apagado respectivamente que el usuario desee, te recomiendo que sean de tipo int. Esto es para evitar problemas en las condiciones de las lineas 7 y 10 pasa lo siguiente (si estoy en lo correcto):

linea 7: (lo siguiente no estoy seguro de que sea asi, es lo que a mi me parece que pasa) Supongamos que la variable on vale 9. El compilador toma el numero 7 y lo compara con el valor de la variable on, aqui hay un problema, 7 es un entero y on es de tipo char, asi que el compilador convierte el valor de on a su valor en entero, para esto utiliza la tabla ascii, segun esta tabla el numero que le corresponde al 9 es el 57, asi que transforma la variable on al numero 57 y ahi realiza la comparacion. Es lo mismo que poner lo siguiente:

Código C++:
Ver original
  1. while (7<57); //en caso de que la variable on valga 9

linea 10: La condicion no tendria que ser al reves?,