problem z funkcją??

0

hej,
mam takowy problem kiedyś w trybie textowym funkcja ta działała bardzo dobrze:) a jak teraz tworzę okienkową wersję to nie mogę się doszukać dlaczego zwraca mi jakieś dziwne rzeczy??? spójrzcie
float zbior5(int wysok)
{
float wynik;
if((wysok>=100)&&(wysok<10(1)))
wynik=((113.000000-0.000000)/10.0)(wysok%10) +0.000000;
else if((wysok>=10
1)&&(wysok<10*(2)))
wynik=((144.000000-113.000000)/10.0)(wysok%10) +113.000000;
else if((wysok>=10
2)&&(wysok<10*(3)))
wynik=((175.000000-144.000000)/10.0)*(wysok%10) +144.000000;
return wynik;


zwraca mi   1122107392.000 cos co mi niezbyt podchodzi...przy wartości 
 wysok = 10??????
0

hmmm
wzialem to troche uporzadkowalem..
tj:
123.00000000000000000 -> 123.0f
( 123.0000000 - 100.0000000000 ) / 10.000000 -> 2.3f
( wynik % 10 ) -> (float)( wynik % 10 ) etc
niby to samo ale widac cos ;p

float 
zbior5( int wysok )
{         
  float wynik; 
  
  if( ( wysok >= 0 ) && ( wysok < 10 ) ) 
    wynik = 11.3f * (float)( wysok % 10 );
  else if( ( wysok >= 10 ) && ( wysok < 20 ) )
    wynik = 3.1f * (float)( wysok % 10 ) + 113.0f;
  else if( ( wysok >= 20 ) && ( wysok < 30 ) ) 
    wynik= 3.1f * (float)( wysok % 10 ) + 144.0f;
  return wynik;
}

hmm i w tekstowym faktycznie wyniki dobre...
w wersji z uzyciem api zreszta tez...

uzylem ponizszej petli, i chodzby tam mialo byc zamiast MessageBox jakies SendMessage( costam, WM_SETTEXT, .... ) to i tak pokaze sie to samo ;> string to string....

  for( i = 10; i < 20; i++ )
  {
    sprintf( buf, "[%2i] == %f", i, zbior5( i ) );
    MessageBox( NULL, buf, "asdf", 0 );
  }

napisz ew jak to wyswietlasz w wersji okienkowej, bo moze tam lezy blad

0

w zasadzie to tego nie wyświetlam w wersji okienkowej tylko ma to po cichu zapisywać wynik(tzn bez wiedzy używającego do pliku..i to także pozostawiłem jak jak kiedyś:

void zapisz_plik(int nr_zbiornika)
{
  int z=nr_zbiornika;
  float litr=-1;
  FILE *fi;
  if(z==5)
  {
    fi=fopen("dan5ON.dam","a+");
    litr=zbior5(wysokosc);
    fprintf(fi,"\n%s   -> %.3f     %d    %d",cz,litr,dystrybutor,wysokosc);
    fclose(fi);
  }
 
//tutaj są kolejne zbior ale identyczne...
   
}

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