大虾看下这个题
有一下程序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; }