C语言中,i=1,a=(++i)+(++i),b=(i++)+(i++)。a和b分别是多少? 30

 我来答
yucwei
推荐于2018-03-04 · 超过24用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:52.6万
展开全部

按运算规律进行推算,都是比结果少1;头大了。

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=1;
//int a,b;
printf("i=%d\n",i);
printf("(++i)=%d\n",++i);
printf("i=%d\n",i);
printf("(++i)+(++i)=%d\n",(++i)+(++i));
printf("i=%d\n",i);
printf("a=(++i)+(++i)+(++i)=%d\n",(++i)+(++i)+(++i));
printf("i=%d\n",i);
printf("(++i)+(++i)+(++i)+(++i)=%d\n",(++i)+(++i)+(++i)+(++i));
printf("i=%d\n",i);
printf("b=(++i)+(++i)=%d\n",(i++)+(i++));
system("pause");
}
结果:
i=1
(++i)=2
i=2
(++i)+(++i)=8
i=4
a=(++i)+(++i)+(++i)=19
i=7
(++i)+(++i)+(++i)+(++i)=39
小↑↑强4f4
2015-03-23 · TA获得超过116个赞
知道小有建树答主
回答量:192
采纳率:0%
帮助的人:107万
展开全部
a = 3 ,b = 9。
a = (++i)+(++i),此时,在第一个括号里,++i是先运算再自加,所以括号里是1,i = 2。后面一个括号里是2 ,i 再次自加,变成三。所以 a = 3
b = (i ++) +(i++)。由于程序的执行顺序,在第一个括号里的时候,i = 3,自加后带入运算,所以括号里是4。后面一个括号里是5,此时 i = 5,所以b = 9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风里的麦田
2015-03-23
知道答主
回答量:35
采纳率:0%
帮助的人:14.2万
展开全部
++在前是先自加在运算,在后是先运算再自加,所以在两个等式没有联系的情况下,a=4,b=2.
你自己亲自试试比在这里问有效
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc027fc
2015-03-23 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:792万
展开全部
#include<stdio.h>

int main()
{
    int i=1;
    int a=(++i)+(++i);
    int b=(i++)+(i++);
    printf("a=%d\n",a);
    printf("b=%d\n",b);
  
}

dty@ubuntu:~$ gcc t.c

dty@ubuntu:~$ ./a.out 

a=6

b=6

追答
实测
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阡陌她人只为你
2015-03-23 · TA获得超过181个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:237万
展开全部
a=6,b=6;在计算a=(++i)+(++i)时限吧++i执行完即i=3,然后a=i+i=6;
b=(i++)+(i++),i=3,系统会把i=3直接带入始终,古b=6;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式