想写一个计算a+=a-=a*a的程序,如下:
#include<stdio.h>
main()
{
double a; /*定义双精度a*/
scanf("%lf",a); /*输入数字*/
a+=a-=a*a; /*计算a的值*/
printf("%lf\n",a); /*输出a的值*/
return 0;
}
为什么会出现
如果直接赋值给a就没问题
#include<stdio.h>
main()
{
double a=3; /*3赋值给双精度a*/
a+=a-=a*a; /*计算a的值*/
printf("%lf\n",a); /*输出a的值*/
return 0;
}
答案是-12