为什么调换这两行6.7行位置,得出结果不一样

img

6 , p=a*n;
7 , scanf(a=%f,n=%d.&a,&n);

对调6和7结果不一样,是因为
没有调换时,a和n只是初始化的值。
调换后,要输入a和n的值
6 , scanf(a=%f,n=%d.&a,&n);
7 , p=a*n;

第一种 先scanf("%f %d",&a,&n); 后p=an;
会先给a和n赋值,然后在计算p的值
第二种先p=a
n;scanf("%f %d",&a,&n);
先计算p的值,所以这个时候p等于0;后面在给阿和n赋值,就不会影响p