Witam,
Miałem napisać program który pobiera nie więcej niż 100 liczb od użytkownika po spacji.
Liczba "0" kończy ciąg. Później pobiera liczbę dodatkową.
Sprawdzane jest to czy dane liczby nie są literami lub innymi znakami oraz czy ciąg jest zdolny do wykonania zadania.

W osobnych liniach wyświetlane jest:
1)Liczba elementów ciągu, które są mniejsze od podanej wartości dodatkowej.
2) To samo tylko większe.
Mój kod powoduje problem typu że jeśli wprowadzę jakąś większą liczbę elementów (sprawdzone przez maszynę) powoduje, że są wyświetlane wartości 1) i 2) bez wpisania liczby dodatkowej w taki sposób:

Podaj liczby: 43 69 71 100 12 52 33 100 64 20 84 59 52 4 68 16 88 91 35 64 3 7 29 55 76 35 93 81 82 83 59 91 7 60 82 37 20 48 22 30 41 98 57 100 66 38 94 13 91 46 98 79 20 2 39 13 23 56 26 60 10 12 42 38 49 61 51 37 22 16 51 72 62 62 76 29 65 99 83 80 80 64 31 93 7 74 56 16 46 47 89 1 18 79 52 47 34 40 17 3 31 39 59 1 34 26 72 88 71 11 36 71 63 74 80 4 37 83 99 24 49 83 69 91 6 40 53 82 6 17 93 9 62 88 56 45 97 97 19 46 78 21 0⏎
Podaj dodatkowa liczbe: 37⏎(to program wyświetla automatycznie a nie my wpisujemy)
62⏎ (to też sam)

Mój kod:

#include <stdio.h>

int main ()
{
int tab[100];
int tabIndex=0;
int x=1;
printf("Podaj liczby: ");
while(x!=0)
{
int y=scanf("%d",&x);
if(y==0)
{
printf("Incorrect input\n");
return 1;
}
if(tabIndex==100) break;
else
{
tab[tabIndex]=x;
tabIndex++;
}
}
if(tabIndex==1)
{
printf("not enough data available\n");
return 2;
}
int y;
int z;
printf("Podaj dodatkowa liczbe: ");
z=scanf("%d",&y);
if(z!=1)
{
printf("Incorrect input\n");
return 1;
}
tabIndex-=1;
int i;
int mniejsze;
for(i=0,mniejsze=0;i<=tabIndex;i++)
{
if(y>tab[i]) mniejsze++;
}
printf("%d\n",mniejsze);
int wieksze;
for(i=0,wieksze=0;i<=tabIndex;i++)
{
` if(y<tab[i]) wieksze++;
}
printf("%d\n",wieksze);
int fflush(FILE * stream);
return 0;
}##
Jak ktoś widzi jakiś błąd to proszę zwrócenie mi uwagi :) Dziękuje za aktywność.