c语言画菱形图像小问题

是这样的,最近老师叫写一个程序,出的题目如下:用'*'号做出一个九行菱形。
我在写这个程序的时候有几个问题,请大家点拨点拨。
1:图1是我写出来的可以正确运行出所要菱形的程序

2:图2是我改变最后一个for语句中的表达式3的内容,出现的确是程序无限循环,就是死程序了
每个程序我都有想问的地方

第一个程序,虽然是正确的,但是我认为这个程序的表达式3所写的s++,好像没什么用啊,因为我认为你s自增了,但是你一再次循环到这条语句时,又要去将s赋值为(x-5),所以我感觉表达式3没有必要。可是我省略了表达式3,也是无限循环,这究竟是什么原因呢?
于是我改了表达式3中的内容,也就是图2的程序(因为我认为没有必要所以就随便写了个表达式3)也是无限循环,为什么?
归根到底我就是想确切问问表达式1和表达式3究竟有没有其他的意义,是如何运行的,比如表达式3,我就不是很认为它就是单纯的放在循环体末尾那么简单。。。。。
我是一名高一学生,在此求助各路强者,最后我还想问问还有没有什么其他写出菱形的程序,我想多多见识一下,谢谢大家帮助(题目要求结果在最后一张图

img

img

img


)

1.这种打印题不用循环只用打印也是可以实现的。直接自己排也行,这种题没太大意义。。。
2.for循环是比较重要的循环,他有三个表达式,执行顺序分别是表达式1,表达式2,循环体,表达式3,表达式2,循环体……。符合表达式2条件执行循环体,否则停止循环。