#include<studio.h> int main() { int i,j,k,a=3,b=2

#include<studio.h>
int main()
{ int i,j,k,a=3,b=2;
i=(--a==b++)?--a;++b;
j=a++;k=b;
printf(“i=%d,j=%d,k=%d\n”,i,j,k);j

第1个回答  2016-07-01
#include<stdio.h>
int main()
{
    int i,j,k,a=3,b=2;
    i=((--a)==(b++))?--a:++b;
    j=a++;k=b;
    printf("i=%d,j=%d,k=%d\n",i,j,k);
    return 0;
}

追问

为什么b=3,不是2?

追答i=((--a)==(b++))?--a:++b;//这里(--a)返回的2,(b++)返回的2,因此返回--a,b所以是3

--a是先递减1,再返回a

b++是先返回b,再递增1

本回答被网友采纳
第2个回答  2016-07-01
应该输出:i=1,j=1,k=3追问

为什么,k=3呢?

追答

前面有个++b,这个应该是先自增然后赋值,所以k的值是3

相似回答