• Lunes 16 de Diciembre de 2024, 17:32

Autor Tema:  Re: problema con Do While  (Leído 998 veces)

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: problema con Do While
« en: Miércoles 23 de Abril de 2003, 00:44 »
0
esta es una parte de mi programa.

while(strcmp(gets(libro[cont].nombre),STOP)!=0 && cont<MAXLIB)
   { printf("nIntroduzca Apellido Paterno:");
   gets(libro[cont].apellidop);
   printf("nIntroduzca Apellido Materno:");
   gets(libro[cont].apellidom);
   printf("nIntroduzca Numero de Matricula (Ej. 2002404258-8):");
   gets(libro[cont].matricula);
   do{
      printf("nIntroduzca Nota Tarea 1:");
      scanf ("%f", &libro[cont].nt1);
   }while(libro[cont].nt1>7.0 && libro[cont].nt1<1.0);

el problema es ke al no se cumplen las dos condiciones ke puse en el do while para ke se repita el ciclo.
Pero si en vez de dos condiciones (libro[cont].nt1>7.0 && libro[cont].nt1<1.0) le pongo solo una, sí me funciona, lo malo es ke yo necesito las dos condiciones.
:ayuda:

gracias por todo!!

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: problema con Do While
« Respuesta #1 en: Miércoles 23 de Abril de 2003, 01:21 »
0
La tabla de verdad del operador lógico && (Y) es:

 
Código: Text
  1.  
  2. +-------+-------+------------+
  3. |   p   |   q   |   p && q   |
  4. +-------+-------+------------+
  5. |   0   |   0   |      0     |
  6. +-------+-------+------------+
  7. |   0   |   1   |      0     |
  8. +-------+-------+------------+
  9. |   1   |   1   |      1     |
  10. +-------+-------+------------+
  11. |   1   |   0   |      0     |
  12. +-------+-------+------------+
  13.  
  14.  
  15.  

Si metes un valor mayor que 7.0, siempre será mayor que 1.0, por lo tanto el resultado será falso: sales del bucle.
Prueba con el operador || (O)
desorden

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
problema con Do While
« Respuesta #2 en: Miércoles 23 de Abril de 2003, 20:15 »
0
gracias desorden!! te pasaste!:D