The value of s is increasing but the number of spaces it prints will be decreasing because you are inside the outer loop.

Take your program and add some debug print statements like this:

    #include <cs50.h>
    #include <stdio.h>
    
    int main(int argc, string argv[])
    {
        int line, s;
        int height = 10;
        
        for (line = 0; line < height; line++)
        {
            printf("line is %d and s is: ", line);  //  <--- add this
    
            for (s = line; s < height - 1 ; s++)    
            {
               printf("%d ", s);                  //  <--- change to print 's'
            }

            printf("\n");
    
        }
    }

What you will get is this:

    line is 0 and s is: 0 1 2 3 4 5 6 7 8 
    line is 1 and s is: 1 2 3 4 5 6 7 8 
    line is 2 and s is: 2 3 4 5 6 7 8 
    line is 3 and s is: 3 4 5 6 7 8 
    line is 4 and s is: 4 5 6 7 8 
    line is 5 and s is: 5 6 7 8 
    line is 6 and s is: 6 7 8 
    line is 7 and s is: 7 8 
    line is 8 and s is: 8 
    line is 9 and s is: 

Each time the second loop runs, the starting value of `s` is the next larger number, so each line will have one fewer space.  That's what you want.  Can you see now why your code works?