有以下程序 main()   {   int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;   while(i++<7) if(p[i]%2)

有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];p... 有以下程序
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);   } 
 程序运行后的输出结果是__B____。  A)42 B)45 C)56 D)60

详细过程是什么?if(p[i]%2)这句话有什么用?
展开
 我来答
L_o_o_n_i_e
推荐于2018-03-19 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5248万
展开全部
%2是除2取余,
if(p[i]%2) 等同 if(p[i]%2==1)
i = 0, < 7, i++ 得1,p[i]=12, p[i]%2=0 为假
i = 1, < 7, i++ 得2,p[i]=13, p[i]%2=0 为 真 j=13
i = 2 < 7, i++ 得3,p[i]=14, p[i]%2=0 为假
i = 3, < 7, i++ 得4,p[i]=15, p[i]%2=0 为 真 j=13+15
i = 4, ,,,为假
i = 5, < 7, i++ 得6,p[i]=17, p[i]%2=0 为 真 j=13+15+17
i= 6, ,,,为假
最终 j=13+15+17=45
生活导师小达吖
2021-01-21
知道答主
回答量:3
采纳率:0%
帮助的人:1524
展开全部
先要知道i++的意思是先使用i判断完以后再加一;例如本题中先用i==0来判断是否小于7,满足后加一变为1,注意此时if中判断是用p[1]判断,显然p[1]除2余0不满足,同理接住判断即可哦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
louhanyang
2011-02-16
知道答主
回答量:25
采纳率:0%
帮助的人:12.5万
展开全部
如果p[i]是奇数 就加上
是偶数就不加

%2是除2取余
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yanshichengxu
2012-03-11
知道答主
回答量:31
采纳率:100%
帮助的人:7.2万
展开全部
判断while后 if语句中的变量i值已经+1了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gcpxj97
2011-02-16 · TA获得超过515个赞
知道答主
回答量:190
采纳率:0%
帮助的人:0
展开全部
数组下标是从0开始的
i=1时的p[i]值是12 i=0是才是11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式