C语言编程:s=1+12+123+1234+12345求高手!急~~

ints=1;for(inti=1;i<=5;){s+=i*10+(++i)}spirtf("s=%d',s);好多答案都是这个,s+=i*10+(++i)这句不对吧,求... int s = 1;
for(int i=1; i<=5; )
{s += i*10 + ( ++i ) }
spirtf ("s=%d',s) ; 好多答案都是这个,s += i*10 + ( ++i ) 这句不对吧,求助。。
展开
 我来答
weidu23
2012-05-03 · TA获得超过199个赞
知道答主
回答量:88
采纳率:0%
帮助的人:70.5万
展开全部
的确错了
-------------------
s += i*10 + ( ++i )其实是s=s+【 i*10 + ( ++i )】,而(++i)则是i+1
于是代码变成了
for(int i=1;i<=5)
{
s= i*10 + i+1+s;
i++;
}
显然,一对比,这个结果是错了的
冷银annie
推荐于2018-03-13 · TA获得超过332个赞
知道答主
回答量:75
采纳率:100%
帮助的人:67.8万
展开全部
int t=0,s=0,i;
for(i=1;i<=5;i++)
{ t= t*10+i ; s=s+t;
}
i=1, t=1, s=0+1=1;
i=2, t=1*10+2=12, s=1+12;
i=3, t=12*10+3=123, s=1+12+123;
i=4, t=123*10+4=1234, s=1+12+123+1234;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yiwuzh
2012-05-03 · TA获得超过787个赞
知道小有建树答主
回答量:1270
采纳率:0%
帮助的人:1005万
展开全部
如果一条语句多出运用到i的话,最好拆分表达式,这种编程习惯只会在笔试面试时候会考你。
建议拆分为s += i*10; s+=++i;
或者
for (int i=1;i<=5;i++)
s+= i*10+i+1;
追问
1+12+123+1234+12345的规律是s += i*10 + i  吗?我怎么看不明白,当 i =1时 s= 11  ,i=2,s=22吧,怎么会是1+12+123+1234+12345呢,求解?
追答
i=1 s+=i*10+i+1 后 s=1+12=13
i=2 运算后 s=13+120+3=136
.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1314watson
2012-09-21
知道答主
回答量:3
采纳率:0%
帮助的人:4520
展开全部
int t=0,s=0,i;
for(i=1;i<=5;i++)
{t=i+t*10;s=s+t;}
printf("s=%d\n",s);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式