求解一个c语言程序

main(){charch[]=”453cd34”;inti,s=0;for(i=0;ch[i]>’0’&&ch[i]<’9’;i+=2)s=10*s+ch[i]-’0’... main()
{char ch[ ]=”453cd34”;
int i,s=0;
for(i=0;ch[i]>’0’&& ch[i]<’9’;i+=2)
s=10*s+ ch[i]-’0’;
printf(“%d\n”,s);}

答案结果是43

我算到i=2时 s=10*1+”2“-”0“=13 结束循环 哪里出问题了吗
展开
 我来答
miracle_mile
2014-01-04
知道答主
回答量:9
采纳率:0%
帮助的人:3.5万
展开全部
算的不对,
第一,i=0,s=10*0 + '4' - '0'=4;
第二步,i=2 s=10*4+ch[2]-'0'=10*4+'3'-'0'=43,
因为ch[2]是‘3’,所以接下来ch[4]是‘d',不满足循环条件,跳出,所以s=43;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rankabc
2014-01-04 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1067万
展开全部
i=0时,s=0+52-48=4, i=i+2=2
i=2时,s=10*4+51-48=43,i=i+2=4
i=4时,不满足循环条件,跳出循环执行下一句printf(“%d\n”,s) 输出43
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陆风超
2014-01-04 · 超过22用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:33.4万
展开全部
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char ch[ ]="453cd34";
    int i,s=0;
    for(i=0;ch[i]>'0'&& ch[i]<'9';i+=2)
    s=10*s+ ch[i]-'0';
    printf("%d\n",s);
    return 0;
}

不太清楚,不过,我运行是:43

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91292b5
2017-10-27 · TA获得超过484个赞
知道小有建树答主
回答量:351
采纳率:72%
帮助的人:97万
展开全部
程序运行的逻辑步骤:
i=0, s=0: ch[i]='4', 进入循环s=10*0+'4'-'0'=4
i=2, s=4: ch[i]='3', 进入循环s=10*4+'3'-'0'=43
i=4, s=43: ch[i]='d', 小于'0',大于'9’,退出循环
此时s=43,所以打印43
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-04
展开全部
i=0时;s=10*0+ch[0]-'0'=4
i=2时;s=10*4+ch[2]-'0'=40+3=43
i=4时ch[4]=d,结束循环
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式