elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre do while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre do while  (Leído 3,608 veces)
lucians

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Duda sobre do while
« en: 6 Junio 2015, 15:35 pm »

Hola tengo un problema ya que al intentar decirle al usuario que si quiere continuar o no , me lo salta sin mas.

Codigo:

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define E 166.67
  4. int main ()
  5.  
  6. {
  7. char res,moneda;
  8. float valor,cambio;
  9.  
  10. do
  11. {
  12. printf("Si desea de E a PTA introduzca E, si desea de PTA a E introduzca P.\n");
  13. scanf("%c",&moneda);
  14. if (moneda=='E')
  15. {
  16. printf("Introduce la cantidad de euros a convertir en pesetas:\n");
  17. scanf("%f",&valor);
  18. cambio=valor*E;
  19. printf("%.2f euros son %.2f pesetas.\n",valor,cambio);
  20. }
  21. if (moneda=='P')
  22. {
  23. printf("Introduce la cantidad de pesetas a convertir en euros:\n");
  24. scanf("%f",&valor);
  25. cambio=valor/E;
  26. printf("%.2f pesetas son %.2f euros.\n",valor,cambio);
  27. }
  28. printf("Quiere seguir calculando? S / N?\n");
  29. scanf("%c",&res);
  30. }while (res=='N');
  31.  
  32. system("pause");
  33. }
No me deja igresar si quiero continuar o no S o N.

Mod: los códigos van en GeSHi


« Última modificación: 6 Junio 2015, 16:28 pm por engel lex » En línea

bash

Desconectado Desconectado

Mensajes: 258



Ver Perfil
Re: Duda sobre do while
« Respuesta #1 en: 6 Junio 2015, 16:05 pm »

primero que todo usa GESHI  para que se vea mejor el codigo y se mas legible
segundo trata de inicializar las variables antes de usarlas ,


En línea

gracias por responder mis dudas
user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: Duda sobre do while
« Respuesta #2 en: 6 Junio 2015, 16:14 pm »

Tienes un fallo grande
Código
  1. while (res=='N')
, quieres decir que se va a repetir siempre que el usuario te diga que no quiere seguir, tienes que poner
Código
  1. while (res != 'N')
En línea

antkk

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Duda sobre do while
« Respuesta #3 en: 6 Junio 2015, 17:14 pm »

Es más legible usar un while que un do while, acostúmbrate a while.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda sobre do while
« Respuesta #4 en: 6 Junio 2015, 17:20 pm »

Es más legible usar un while que un do while, acostúmbrate a while.

no tienen la misma utilidad, ambos tienen su forma de usarse y la legibilidad no es el problema aquí
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
lucians

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda sobre do while
« Respuesta #5 en: 6 Junio 2015, 17:40 pm »

Soy nuevo en esto de la programacion y no conozco esas funciones avanzadas.
Aunque lo ejecute con 
Código:
while (res != 'N')
no va!!!!
En línea

lucians

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda sobre do while
« Respuesta #6 en: 6 Junio 2015, 17:42 pm »

Lo que digo es que no me deja introducir un S o un N para continuar o no.
Solo eso.
Les agradecería mucho si me ayudan.
En línea

user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: Duda sobre do while
« Respuesta #7 en: 6 Junio 2015, 17:47 pm »

Tienes que limpiar el buffer
En línea

user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
Re: Duda sobre do while
« Respuesta #8 en: 6 Junio 2015, 17:52 pm »

Mira como si que te va, lo que pasa que te he puesto cosas de c++

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define E 166.67
  4. #include <iostream>
  5. #define limpiarBuffer(){while(cin.get() != '\n');}
  6. using namespace std;
  7. int main ()
  8.  
  9. {
  10. char res,moneda;
  11. float valor,cambio;
  12.  
  13. do
  14. {
  15. printf("Si desea de E a PTA introduzca E, si desea de PTA a E introduzca P.\n");
  16. scanf("%c",&moneda);
  17. limpiarBuffer();
  18. if (moneda=='E')
  19. {
  20. printf("Introduce la cantidad de euros a convertir en pesetas:\n");
  21. scanf("%f",&valor);
  22. limpiarBuffer();
  23. cambio=valor*E;
  24. printf("%.2f euros son %.2f pesetas.\n",valor,cambio);
  25. }
  26. if (moneda=='P')
  27. {
  28. printf("Introduce la cantidad de pesetas a convertir en euros:\n");
  29. scanf("%f",&valor);
  30. limpiarBuffer();
  31. cambio=valor/E;
  32. printf("%.2f pesetas son %.2f euros.\n",valor,cambio);
  33. }
  34. printf("Quiere seguir calculando? S / N?\n");
  35. scanf("%c",&res);
  36. limpiarBuffer();
  37. }while (res!='N');
  38.  
  39.  
  40. }
  41.  
Adatpatalo a c
En línea

lucians

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duda sobre do while
« Respuesta #9 en: 6 Junio 2015, 18:22 pm »

Muchísimas gracias, teníais razón, había que limpiar el bufe. Le he puesto
Código:
fflush(stdin)
antes de los
Código:
printf
y va perfecto.
¡¡¡Muchísimas gracias!!!  :D

En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines