c语言语句执行顺序

我是初学者,求指导为什么下列代码最后输出的结果是一大串数字,而不是正确的呢?我把q=qs*bl;放在第八行之后却能正确输出了,为什么呀?好苦恼。
#include<stdio.h>int main(void){ double qs,bl,q; q=qs*bl; printf("请输入钱数 \n"); scanf("%lf",&qs); printf("请输入倍率 \n"); scanf("%lf",&bl); printf("转换后的钱数为%.2f \n",q); return 0;}

c语言是顺序执行语言,意思就是按代码出现的顺序一句一句执行,所以
double qs,bl,q;
q=qs*bl;

这是qs跟bl还没初始化,一般就是一个很大的随机数,因此此时计算得到的q就是一个很大很大的数了,当你把这句代码放后面:
printf("请输入倍率 \n");
scanf("%lf",&bl);
q=qs*bl;

因为前面已经给qs跟bl读入了指定的值,所以这时候再去计算q,就是正确的结果了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-07
#include<stdio.h>
int main{
double qs,bl,q;
printf("请输入钱数 \n");
scanf("%lf",&qs);
printf("请输入倍率 \n");
scanf("%lf",&bl);
q=qs*b1;
printf("转换后的钱数为%.2f \n",q);
return 0;
}
你的程序中 q=qs*bl时qs和bl的值是未知的
所以输出的q是任意值
第2个回答  2013-11-07
你都没有给变量赋值,怎么计算嘛,放在后面是因为前面的输入给这两个变量赋值了,所以计算正确
相似回答