Sprawdzam poprawność wprowadzanych danych tak samo 2 razy.
Pierwsze sprawdzanie działa OK zarówno dla liczb z poza przedzialu jak i dla znakow ktore nie sa liczbami
Drugie dziala tylko dla znakow ktore nie sa liczbami, a liczby np ujemne przechodzą - a ja nie mam pojęcia dlaczego. Przecież sprawdzam poprawność dnaych w ten sam sposób.
Dlaczego bledne liczby przechodza przez 2 petle?
Proszę o wskazówki i z góry dziękuje, oto kod:
#include <stdio.h>
main (void)
{
unsigned int temp,status,liczba1,liczba2 ;
printf("Podaj liczbe z przedzialu od 1 do 9\n");
status = scanf("%d",&liczba1 );
while( liczba1 > 9 || liczba1 < 1 || status != 1 )
{
while((temp=getchar()) != EOF && temp != '\n');
printf("Zle!\n");
status = scanf("%d", &liczba1 );
}
printf("Ok,podales liczbe od 1 do 9. Teraz podaj liczbe wieksza od 0\n");
status = scanf("%d",&liczba2);
while( (liczba2<= 0) || (status != 1) )
{
while((temp=getchar()) != EOF && temp != '\n');
printf("Zle!\n");
status = scanf("%d",&liczba2);
}
}