Problema con la lectura de una variable por parte de while
Hola!
Me encuentro aprendiendo C autodidactemente y voy haciendo ejercicios que voy encontrando por ahí (Con su teoría, obviamente).
El caso es que tengo que hacer un programa que me pida números entre 1 y 5 (Y avisarle si no es así y volver a pedirle un numero) y en cuanto la suma de estos supere 21 me avise imprimiendo el numero total y el ultimo numero introducido, el programa funciona, pero el caso es que no tiene en cuenta el primer numero que le introduzco, y no consigo sacar en claro y el motivo y probablemente me este empecinando mucho y no veo el evidente error.
Aquí va el código:
#include <stdio.h>
#include <math.h>
int main(void)
{
int num=0, resultado=0;
printf("Dime el numero que quieres introducir (Entre 1 y 5)");
scanf("%d", &num);
if (num > 5){
printf("No se pueden introducir numeros mayores a 5 ni menores a 1");
scanf("%d", &num);
}
while (resultado < 21)
{
if (num>=1 && num<=5)
{
scanf("%d", &num);
resultado = resultado + num;
}
}
printf("%d, Mayor que 21...¡Te has pasado!, ultimo numero introducido %d", resultado, num);
return 0;
}
Alguna idea?
Muchas gracias por su atención y ayuda
Hola!
Me encuentro aprendiendo C autodidactemente y voy haciendo ejercicios que voy encontrando por ahí (Con su teoría, obviamente).
El caso es que tengo que hacer un programa que me pida números entre 1 y 5 (Y avisarle si no es así y volver a pedirle un numero) y en cuanto la suma de estos supere 21 me avise imprimiendo el numero total y el ultimo numero introducido, el programa funciona, pero el caso es que no tiene en cuenta el primer numero que le introduzco, y no consigo sacar en claro y el motivo y probablemente me este empecinando mucho y no veo el evidente error.
Aquí va el código:
#include <stdio.h>
#include <math.h>
int main(void)
{
int num=0, resultado=0;
printf("Dime el numero que quieres introducir (Entre 1 y 5)");
scanf("%d", &num);
if (num > 5){
printf("No se pueden introducir numeros mayores a 5 ni menores a 1");
scanf("%d", &num);
}
while (resultado < 21)
{
if (num>=1 && num<=5)
{
scanf("%d", &num);
resultado = resultado + num;
}
}
printf("%d, Mayor que 21...¡Te has pasado!, ultimo numero introducido %d", resultado, num);
return 0;
}
Alguna idea?
Muchas gracias por su atención y ayuda