kontrola poprawności danych

0

co w tym kodzie jest nie tak? po wejściu w pętle while nie chce z niej wyjść. program ma prosić o podanie danej do momentu gdy będzie ona poprawna
#include <stdio.h>

int main()
{
int liczba;
printf("Program prosi o podanie liczby naturalnej\n");
printf("robi to tak dlugo az dane beda poprawne.\n");
while (scanf("%d",&liczba)!=1 || getchar()!='\n' || liczba<=0)
{
printf("Bledna dana\n");
printf("popraw je\n");
}
printf("oto podana liczba %d\n\n",liczba);
printf("\n\nKoniec programu.\n");
return 0;
}

1

Użyłeś || zamiast &&

Dodatkowo nie powinieneś mieszać scanfa z getchar, szczególnie w warunku pętli!

1 użytkowników online, w tym zalogowanych: 0, gości: 1