Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] - standard ANSI. Zawieszenie pętli while, korzystanie z liczb zmiennoprzecinkowych.

Ostatnio zmodyfikowano 2014-10-24 12:30
Autor Wiadomość
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.
C/C++
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;
            }
P-119294
Monika90
» 2014-10-24 12:30:01
C/C++
scanf( "%.2f", & a );
Typ się nie zgadza, a jest typu double, %f wymaga wskaźnika do float. Nie powinno tam też być .2
P-119296
« 1 »
  Strona 1 z 1