问一下 #include<stdio.h> void main { int a,b,c; a=b=c=10; a+=c; b*=c; printf("

问一下

#include<stdio.h>
void main
{
int a,b,c;
a=b=c=10;
a+=c;
b*=c;
printf("a=%d,b=%d,c=%d\n",a,b,c);
}

为什么答案是a=10,b=25,c=5呢
而不是a=20,b=100,c=10呢

#include<stdio.h>
void main
{
  int a,b,c;
  a=b=c=10;
  a+=c;
  b*=c;
  printf("a=%d,b=%d,c=%d\n",a,b,c);
}

为什么答案是a=10,b=25,c=5呢
而不是a=20,b=100,c=10呢


    首先第4行声明了3个int类型变量;

    第5行a=b=c=10;这样子写的话a,b,c的值都是10了

    第6行a += c; 其实等价于 a = a + c;      所以    a = 20;

    第7行 b *= c; 等价于 b = b * c; 所以 b = 100


a = 20; b =100; c =10 

由此可见答案是不对的哦。

有时候答案不一定是对的哦!!

追问

那谢谢了 自学的 结果这本书弄得我好尴尬

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-16
答案错了,那明显是赋值为5的正确输出。追问

意思是后面那个答案才是对的吗?

追答

是的,代码(修正明显错误后)的正确执行结果是:
a=20,b=100,c=10

相似回答