求解一个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 结束循环 哪里出问题了吗 展开
{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 结束循环 哪里出问题了吗 展开
6个回答
展开全部
算的不对,
第一,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;
第一,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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
i=2时,s=10*4+51-48=43,i=i+2=4
i=4时,不满足循环条件,跳出循环执行下一句printf(“%d\n”,s) 输出43
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序运行的逻辑步骤:
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
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,结束循环
i=2时;s=10*4+ch[2]-'0'=40+3=43
i=4时ch[4]=d,结束循环
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询