[C] - standard ANSI. Zawieszenie pętli while, korzystanie z liczb zmiennoprzecinkowych.
Ostatnio zmodyfikowano 2014-10-24 12:30
draggie Temat założony przez niniejszego użytkownika |
[C] - standard ANSI. Zawieszenie pętli while, korzystanie z liczb zmiennoprzecinkowych. » 2014-10-24 12:12:32 Witam, jestem początkujący w środowisku C oraz C++. Natrafiłem ostatnio na problem, którego rozwiązać za bardzo nie mogę mimo usilnego szukania po zasobach internetu i książek. Mianowicie mam za zadanie stworzenie pętli liczącej sobie różne rzeczy, pobierającej z klawiatury daną, następnie robiącą z nią różne rzeczy i ostatecznie dana ta powinna być przyrównana do innej zmiennej tak by się nią stać i w ten sposób zmienna a staje się zmienną b, później znowu nowa zmienna a zastępuje b itd. Wszystko fajnie działa, do momentu kiedy postanowiłem wprowadzić liczby zmiennoprzecinkowe. Od tego momentu, podczas podania liczby np 1.1 program zawiesza się na wykonywaniu jednego działania - wyświetla ciągle "Nastapilo przeciecie zera, liczba przeciec: x. Wstawiam tu fragment kodu programu. Prosiłbym o pomoc oraz wytłumaczenie jak problem można obejść lub rozwiązać. Pozdrawiam, draggie. double licznik; double przeciecia; double a; double b; przeciecia = 0.0; licznik = 0.0; b = 1.0;
while( licznik != MAX_LICZNIK ) { while( licznik < LICZBA_GRUPY ) { a = 0.0; printf( "Prosze, podaj dane: " ); scanf( "%.2f", & a ); if( a == 99.0 ) { break; } if(( a >=- 10.0 ) &&( a <= 10.0 ) ) { printf( "Poprawna dana, stan grupy: %.0f", ++licznik ); printf( "\n" ); if( a * b < 0.0 ) { printf( "Nastapilo przeciecie zera, liczba przeciec: %.0f", ++przeciecia ); printf( "\n" ); b = a; } else { b = a; }
|
|
Monika90 |
» 2014-10-24 12:30:01 Typ się nie zgadza, a jest typu double, %f wymaga wskaźnika do float. Nie powinno tam też być .2 |
|
« 1 » |