因为每次输出2个数,40个月循环20次就行了。
if(i%2==0) printf("\n");/ f1=f1+f2; f2=f1+f2; 就是如果i%2的模数为0的话就换行,f1 = f1 + f2; f2 + f1 + f2 就是第三个月是第一和第二个月的和,第四个月是第二和第三个月的和,虽然都是f1 + f2,但是在f2 = f1 + f2 中,f1 已经在前面那个表示中改变了值。
for循环中是先输出一组数,在判断,这时候i为基数,所以下次再在同一行输出一组数,这个时候i为偶数,输出换行。
楼主是不理解f1=f1+f2 这种等式为什么成立吗?
c里面的 = 是赋值 ..f1 = f1 +f2 ..相当于把f1原本的值+f2的值 再赋给f1..
形象点的话..想成倒水...把f1 f2 想成杯子..f1 f2 原本的值想成杯子里的水.. f1= f1+f2 就相当于 把f2 杯子 中的水倒到f1 中么.跟真的倒水.唯一的区别是..到完之后..f2 杯子当中还有水...呵呵..希望能帮到你