Witam mam następujące zadanie
Napisać program, który ma odczytywać sekwencję liczb całkowitych z terminala i wyliczać częstotliwość wystąpień przecięć zera we wczytywanym strumieniu wejściowym. Przecięcie zera następuje każdorazowo, gdy po wartości dodatniej następuje wartość ujemna lub po wartości ujemnej dodatnia (także, gdy między tymi wartościami pojawia się jedno lub więcej zer). W przypadku wykroczenia wyliczanej częstotliwości poza zadany przedział na wyjściu programu powinien pojawić się odpowiedni komunikat. W szczególności:
pod uwagę mają być brane jedynie liczby z przedziału od -10 do 10 oraz liczba 99 oznaczająca koniec strumienia danych; pozostałe wartości są uznawane za niepoprawne i pomijane;
częstotliwość ma być określana jako liczba wystąpień przecięcia zera w kolejnych grupach złożonych z 99 liczb - wartość częstotliwości spoza przedziału od 5 do 8 uznawana jest za niepoprawną i powoduje pojawienie się na wyjściu programu odpowiedniego komunikatu; w pozostałych przypadkach nie jest generowany żaden komunikat.
mój program wygląda tak
#include <stdio.h>
#include <math.h>
#define grupa 10
#define stop 99
#define freqmin 5
#define freqmax 7
#define liczbamin -10
#define liczbamax 10
int main ()
{
int liczba = 0;
int znak = 0;
int freq = 0;
int numer = 0;
while (liczba != stop) {
scanf ("%d", &liczba);
if ((liczba <= liczbamax) && (liczba >= liczbamin))
{
if(liczba<0 )
znak= -1;
else
znak= 1;
}
if((znak==1) && (liczba<0)) {
freq++;
numer++;
znak= -1;
}
if((znak==1) && (liczba>=0)) {
numer++;
}
if((znak==-1) && (liczba>0)) {
freq++;
numer++;
znak= 1;
}
if((znak==-1) && (liczba<=0)) {
numer++;
}
if((numer==grupa) && (freq<=freqmax) && (freq>=freqmin)) {
printf("%d", freq);
numer=0;
}
if((numer==grupa) && ((freq>freqmax) || (freq<freqmin)))
{
printf("czestotliwosc niepoprawna");
break;
}
}
return 0;
}
Niestety zawsze pokazuje mi częstotliwość niepoprawna(co 10 linijkę) i nie wiem w którym miejscu popełniłem błąd,
proszę wszystkich o wyrozumiałość gdyż jestem całkowitym laikiem.
Z góry dziękuję za każdą pomoc