大虾看下这个题
有一下程序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);
}
我做的结果是56,但为什么执行的结果是45呢,谁帮我说明下,谢谢!!!
程序代码: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);
}
代码方面看不出有什么问题,可能是while循环里有问题吧,如果换成for循环,答案就可以得到你想要的了,如下:
程序代码:#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int p[8]={11,12,13,14,15,16,17,18};
int i=0,j=0;
for(;i<7;i++)
{
if (p[i]%2)
j+=p[i];
}
printf("%d\n",j);
system("PAUSE");
return 0;
}