老师,我试着写了下边这个程序,输出的全是偶数,当我i=1时输出的又全是奇数,这是为什么呢?我觉得i++和++i我还是没弄明白。
#include <stdio.h>
main()
{
int i;
for(i=1;i<=100;++i)
printf("%8d",++i);
if(i%5==0)
printf("\n");
}
i++和++i的区别就是,前者整体值为i,后者整体值为i+1;相同点就是经过这两个表达式,i自身的值都会+1。实在难理解就记住结论好了。
大神老师,能把前面程序循环中i和++i的变化过程推算一下吗?谢谢!
回复 qqq:老师,帮忙把前面程序i=1时,++i全是偶数的原因大致讲一下,推算一下嘛。在你们老师看来
太简单不值一说,可是我弄不懂好纠结哦,好像后面的都弄不懂了!拜托!
回复 明月:for循环的执行过程应该清楚吧?先初始化i=1,然后判断i<=100是否为真,然后执行循环体,也就是输出++i的值,i=1时,printf要输出的是++i的值为2,i的值也变成了2;然后进入下一次循环,循环条件是for(i=1;i<=100;++i)中++i,因为第一个循环结束后i已经变成了2,所以执行完循环条件的++i后,i变成了3,那再执行printf中的++i时,输出的++i的值就是4了,此时i也变成了4...以此类推,printf一直输出i为偶数时的情况。。懂了么?
回复 qqq:终于懂了,谢谢老师。
点赞
扫一扫分享朋友圈
二维码
分享
你确定要删除这个问题吗?