Dlaczego printf nie wypisuje spacji ?

0

Ktoś ma jakiś pomysł dlaczego printf w przedostatniej pętli nie wypisuje mi spacji ? :/

 #include "czytaj.h"
 
int czytaj(FILE *plik, char a,int n){
    int l=0; /*liczba liter*/
    int x=n-1;
    int y=0;
    int w=0;
    int k=0;
    int j=0;
 
    /*sprawdzenie czy podano prawidlowy uchwyt do pliku*/
    if(plik==NULL){
        fprintf(stderr,"BLAD: NIE PODANO UCHWYTU DO PLIKU");
    }
    /*czytanie znakow do konca pliku*/
    while(fscanf(plik, "%c", &a) !=EOF){
        if(isalpha(a)!=0){ /*jesli napotka znak wypisz go*/
            printf("%c", a);
        }
        if(isalpha(a)==0){
            printf(" ");
        }
        if((isalpha(a)!=0 || isalpha(a)==0) && n>0){
            k++;
        }
        if(a==' ' && n>0){
            n--;
        }
        if(isalpha(a)!=0 && n>0){
            l++;
        }
        if(a==' ' && x>0){
            x--;
        }
        if(isalpha(a)!=0 && x>0){
            y++;
        }
 
    }
    w=l-y; /*liczba liter w wybranym wyrazie jest roznica wszystkich liter do wybranego wyrazu wlacznie i liczba liter wyrazow go poprzedzajacych*/
    j=(k-w)-1; /*liczba spacji do wypisana rowna jest roznicy wszystkich znakow do wybranego wyrazu wlacznie odjac liczba znakow w wybranym wyrazie pomniejszona o jeden*/
 
    while(j>0){
        j--;
        printf(" ");
    }
 
    while(w>0){
        w--;
        printf("^");
    }
 
    return 0;
 
} 
1

Nie inicjalizujesz zmiennej l (liczby liter) żadną wartością.
Petla wyswietlajaca spacje zalezna jest od zmiennej "j"
"j" jest liczone ze zmiennych "k" i "w". "w" jest liczone z "l". A "l" ma nieznaną (moznaby powiedzieć losową) wartość.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.