kontrola poprawności danych

kontrola poprawności danych
K2
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 lat
  • Postów:5
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;
}

edytowany 1x, ostatnio: Krzysiek24207
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Lokalizacja:Szczecin
1

Użyłeś || zamiast &&

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


edytowany 1x, ostatnio: kq
K2
ale musi być || ponieważ gdy dam && to nie wejdzie w pętle gdy dam na przykład "d" bo po niej wstawiam enter

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.