也是56。我上面的是45!!!!!你们再看看
#include <stdio.h>
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++ < 7)
{
if(p[i]%2)
{
j+=p[i];
}
}
printf("%d\n",j);
}
不等价于
include <stdio.h>
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i< 7)
{
if(p[i]%2)
j+=p[i];
i++;
}
printf("%d\n",j);
}
我是这么认为的
你执行了while(i++<7)后立刻执行了i=i+1这一句即等同于
include <stdio.h>
main()
{
int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i< 7)
{ i++;
if(p[i]%2)
j+=p[i];
}
printf("%d\n",j);
}
而此循环进行到i=6的时候终止虽然最后i=7,当i=0第一次执行p[i]%2时候不是执行p[0]%2而是p[1]%2
此时p[1]=12,p[1]%2==0 所以不执行j+=p[i];i=1时候 执行p[2]%2这个时候为真 执行j+=p[i];依次推下去
最后结果就是13+15+17=45.