C语言的一个小问题不是很明白

img

img


为什么我把那个if语句换个顺序,运行结果就不一样了,代码是想要求前五十个素数,然后输出的时候每五个换一行

额,你移动了这个顺序当然打印效果就不一样。 第一个图中,当有5个数据时,你选择先换行再打印数据,于是第五个数据自然就到第二行去了呀

第一个图,cnt每达到5的倍数时,假设之前已经打印输出了4个数字,cnt++此时为5,你是先换行,再打印出第5个数字。所以第一幅图第一行只有4个数字。
而你第二个图,cnt每达到5的倍数,先打印出第五个数字,再换行,这样就能保证每行都输出了5个数字

一个是先显示五个数字,然后确定是否换行;
一个是在显示第5个数字之前,你先判断了

有区别:一种是先输出,再换行,另一种是先换行,再输出