麻烦讲解C语言的计算过程 题目如下(输出结果为何是45)

#include<stdio.h>intmain(void){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<8)... #include <stdio.h>
int main (void)
{
int p[8]={11,12,13,14,15,16,17,18}, i=0, j=0;
while (i++<8)
if (p[i]%2)
j+=p[i];
printf("%d\n",j);
return 0;
}
展开
 我来答
书来了
2012-06-02 · 好书推荐 | 知识分享 | 读书成长
书来了
采纳数:105 获赞数:579

向TA提问 私信TA
展开全部
这个表示 数组中不能被2整除的数的和
11+13+15+17=45+11 =56
那为什么你的答案是45呢
因为你的while条件是i++
所以第一次循环体是
if (p[1]%2)
j+=p[1];
也就说从数组的第二个元素开始的 (12开始的)
如果你是要
数组中不能被2整除的数的和
可以改成
while (i<8)
{
if (p[i]%2)
{ j+=p[i]; }

i++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友24bd7ea
2012-06-02 · 超过10用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:29.1万
展开全部
i=0;
进入while()循环
i=1;p[i]=12;
i=2;p[i]=13;j=13;
i=3;p[i]=14;
i=4;p[i]=15;j=28;
i=5;p[i]=16;
i=6;p[i]=17;j=45;
i=7;p[i]=18;
i=8;退出while()循环;
j=45;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式