Kontrola danych w C

drazy
  • Rejestracja: dni
  • Ostatnio: dni
0

Prosze o pomoc. Jestem początkująca.
Mam napisac program ktory prosi uzytkownika o podanie liczby naturalnej a potem entera. No i zrobilam sobie tak, ale jezeli np wpisze 0.9 to koncowka ta jest w buforze i petla zle działa...co tu zrobic? :)
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int a;
printf("Podaj liczbe natu\n");

while(!(scanf("%d",&a)==1&&getchar()=='\n'))
{
printf("Popraw sie\n");

                                         }

printf("ok\n");

system("pause");
return 0;
}

Endrju
  • Rejestracja: dni
  • Ostatnio: dni
0

To powinno Ci pomóc: Zabezpieczenie przed wpisywaniem liter

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

0.9 to liczba typu double (nie int) w scanf'ie odpowiedni format %lf lub %f w zależności od kompilatora.

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.