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?