很简单,C语言编译语句只按照从上到下的顺序编译,但是上一条语句没有执行完,是不会执行下一条的。所以先执行第一个for语句,可是第一个for语句的内容恰好是执行第二个for语句,而第二个for语句的内容又恰好是执行第三个for语句,所以第三个for语句执行完了,第二个for语句才能继续执行,而第二个for语句执行完了,第一个for语句才能执行,所以虽然只执行了for(five; five <= 2; five++),实际上却是三次循环都按次序执行了。
你写的东西实际上是循环全部执行了,但是注意,你的三个变量的初始化都是for循环外面,当在ive =0;two=0的情况下,最里面的循环执行外后,one的值就永久变成了11。
也就是说,在输出0,0,0到0,0,10后,进行five=0,two=1时的循环时,one的值已经是11了,不会再执行printf了。
以我的猜测,你是想输出所有的数字,你应该把三个for循环改成
for(five=0;。。。。。)
for(two=0;。。。。。。)
for(one=0;。。。。)
既每次进入for循环时,对变量初始化一下