Hola, estoy programando en C con el compilador gcc pero, trato d hacer una repeticion do-while y cuando ingreso el caracter para continuar , el programa me bota...
#include <stdio.h>
main()
int x, suma, R;
char o;
printf("Este programa suma los digitos de un numero iterativamente.\n");
do
{
printf("Ingrese un numero:\n");
scanf("%d", &x);
suma=0;
while (x>0);
{
R=x%10;
suma=suma+R;
x=x/10;
}
printf("La suma de sus digitos es: %d\n", suma);
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();
getchar(); /*AQUI ES EL PROBLEMA*/
}
while(o=='s'||o=='S');
}
¿Por qué pones 'getchar()' dos veces?
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();
getchar(); /*AQUI ES EL PROBLEMA*/
¿No bastaría con una vez?
tenias un ";" después del "while" lo que hace que se quede en un bucle infinito, me sirvio de esta forma:
#include <stdio.h>
int main(){
int x, suma, R;
char o;
printf("Este programa suma los digitos de un numero iterativamente.\n");
do
{
printf("Ingrese un numero:\n");
scanf("%d", &x);
suma=0;
while(x>0) // ===> Sin punto y coma " ; "
{
R=x%10;
suma=suma+R;
x=x/10;
}
printf("La suma de sus digitos es: %d\n", suma);
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();
getchar(); /*AQUI ES EL PROBLEMA*/
}while(o=='s'||o=='S');
return 0;
}
suerte amigo.
Cita de: Seaworth en 6 Febrero 2012, 19:29 PM
¿No bastaría con una vez?
http://linux.die.net/man/3/getchar
La tecla que tocas es un caracter ( 's' || 'S' ), getchar() bloquea hasta que tipeas un enter ... y el enter es otro caracter, que queda en el buffer ...
Saludos.
Cita de: [Alex] en 7 Febrero 2012, 05:57 AM
http://linux.die.net/man/3/getchar
La tecla que tocas es un caracter ( 's' || 'S' ), getchar() bloquea hasta que tipeas un enter ... y el enter es otro caracter, que queda en el buffer ...
Saludos.
Ah, OK (tengo muy olvidado el C...).
Gracias, saludos.
Cita de: dato000 en 6 Febrero 2012, 22:24 PM
tenias un ";" después del "while" lo que hace que se quede en un bucle infinito, me sirvio de esta forma:
#include <stdio.h>
int main(){
int x, suma, R;
char o;
printf("Este programa suma los digitos de un numero iterativamente.\n");
do
{
printf("Ingrese un numero:\n");
scanf("%d", &x);
suma=0;
while(x>0) // ===> Sin punto y coma " ; "
{
R=x%10;
suma=suma+R;
x=x/10;
}
printf("La suma de sus digitos es: %d\n", suma);
printf("Deseas seguir ejecutando el programa S/N:");
o=getchar();
getchar(); /*AQUI ES EL PROBLEMA*/
}while(o=='s'||o=='S');
return 0;
}
suerte amigo.
Lo que pasa esq el problema esta en el ciclo q no me deja correr si le pongo S, me saca del programa... a por cierrto una aclaracion soy niña NO niño :D