Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] programa C de bucles os necessito

Estas en el tema de programa C de bucles os necessito en el foro de C/C++ en Foros del Web. Buenas a todos, os pido ayuda en un programa que estoy haciendo a mi novia y no me funciona, soy nuevo y aun estoy haciendo ...
  #1 (permalink)  
Antiguo 17/11/2014, 02:40
 
Fecha de Ingreso: noviembre-2014
Ubicación: Igualada
Mensajes: 11
Antigüedad: 10 años
Puntos: 1
Mensaje programa C de bucles os necessito

Buenas a todos, os pido ayuda en un programa que estoy haciendo a mi novia y no me funciona, soy nuevo y aun estoy haciendo bucles nada del otro mundo.
La primera parte del programa me funciona pero despues del system("cls") nose que le pasa pero no me funciona.
Os agradeceria si pudierais ayudarme en este programita cutre :)

#include <stdio.h>

int main (void){

unsigned int dia=0;//varable per a la primera part del programa
char lletra='y';//variable per a la segona part del programa

//primera part del programa

printf("digues quin es el millor dia del mes: \n");

while(dia!=17){
scanf("%u",&dia);
if(dia!=17){
printf("Nop has fallat torna a provar \n");
}
}
printf("Jeje era molt obvia no? molt be princessa ara la proxima\n\n");

printf("apreta enter per continuar");
getchar();
getchar();

system("cls");

//segona part del programa

do{
printf("cuant temps portem junts?\n");
printf("a- mas de 8mil!\n");
printf("b- 1,2anys\n");
printf("c- 1,3anys\n");
scanf("%c",&lletra);

if(lletra!='b'){
printf("Nop has fallat, havera si ara la encertes\n");
}
}while(lletra=='b');
printf("molt be preciossa ets la millor <3\n");

}
  #2 (permalink)  
Antiguo 17/11/2014, 02:54
 
Fecha de Ingreso: octubre-2013
Mensajes: 44
Antigüedad: 11 años
Puntos: 5
Respuesta: programa C de bucles os necessito

Seguramente el problema este en la condición de salida del do-while.

Cambia:

Código C:
Ver original
  1. }while(lletra=='b');

por:

Código C:
Ver original
  1. }while(lletra!='b');

Saludos
  #3 (permalink)  
Antiguo 17/11/2014, 03:01
 
Fecha de Ingreso: noviembre-2014
Ubicación: Igualada
Mensajes: 11
Antigüedad: 10 años
Puntos: 1
Respuesta: programa C de bucles os necessito

Cita:
Iniciado por Madh Ver Mensaje
Seguramente el problema este en la condición de salida del do-while.

Cambia:

Código C:
Ver original
  1. }while(lletra=='b');

por:

Código C:
Ver original
  1. }while(lletra!='b');

Saludos
Muchas gracias, ahora funciona. ^^
Peró si la respuesta es equivocada me sale 2 veces la pregunta.
osea que en equivocarme sale esto 2 veces seguidas:
printf("cuant temps portem junts?\n");
printf("a- mas de 8mil!\n");
printf("b- 1,2anys\n");
printf("c- 1,3anys\n");
  #4 (permalink)  
Antiguo 17/11/2014, 03:03
 
Fecha de Ingreso: octubre-2013
Mensajes: 44
Antigüedad: 11 años
Puntos: 5
Respuesta: programa C de bucles os necessito

Creo que se trata de un problema del buffer.

Metiendo un getchar() dentro del do-while y ya de paso un system("cls") por estetica, deberia funcionar perfectamente.
  #5 (permalink)  
Antiguo 17/11/2014, 03:05
 
Fecha de Ingreso: noviembre-2014
Ubicación: Igualada
Mensajes: 11
Antigüedad: 10 años
Puntos: 1
Respuesta: programa C de bucles os necessito

Oh, si era eso muchissimas gracias me has ayudado un monton.
  #6 (permalink)  
Antiguo 17/11/2014, 03:05
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: programa C de bucles os necessito

Tienes que limpiar el buffer de entrada después del scanf (o antes).

Tu piensa que el buffer va acumulando todo lo que escribes por teclado, cada vez que llamas a scanf se va recuperando lo que ahí se ha almacenado... y si está vacío la aplicación se queda esperando a que introduzcas los datos requeridos.

Una forma de limpiar el buffer puede ser:

Código C++:
Ver original
  1. while ((ch = getchar()) != '\n' && ch != EOF);

Hay otras muchas alternativas, es cuestión de elegir la que más te guste.

Un saludo.

EDITO: Se me adelantaron con la respuesta :)
  #7 (permalink)  
Antiguo 17/11/2014, 03:08
 
Fecha de Ingreso: noviembre-2014
Ubicación: Igualada
Mensajes: 11
Antigüedad: 10 años
Puntos: 1
Respuesta: programa C de bucles os necessito

XD, gracias a ti tambien por la explicacion cualquier ayuda sera muy bien recivida

Saludos

Etiquetas: nuevos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:35.