初学C程序不懂问问。懂的大哥进来下下

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:25:06
在书上看到
#include<stdio.h>

int main(void){
int a = 3;
int b = 7;

double c = 2.4;
double d = 7.4;

b = b + a;
d = c * d;

printf("a =%d\n",a);
printf("b =%d\n",b);
printf("c =%d\n",c);
printf("d =%f\n",d);

return 0;
}

运行结果 a=3
b=10
c=858993459
d=17.76000
我不明白,他c和 d 是怎么算出来的?
double c =2.4 double d=7.4各是什么意思 还有书上写的这个符号(;去掉上面的点,留下面的小逗号怎么打,不是逗号吧?看起来就像一个小点,)
分我有,清楚点,给加分谢谢
一楼的大哥,这是书上的例子,我原名写上来的。我只是不明白答案怎么算出来。有具体数学式吗?

输出c的时候,你用的是%d
浮点数应当是%f
你改一下应当就可以了。

c = 2.4;这个在内存里面是按IEEE浮点规范保存的(具体的,你得看计算机组成原理,我也忘了,就是说哪一位是符号,哪些位是指数,哪些位是底)。在内存最终保存成0101010这种形式

而你如果%d输出的,它就把01010之类的信息用整形输出(你的编译器肯定不是TC或WINTC之类的)。

总之,你看一下计算机组成原理里面浮点的保存应当可以了。

c 是double 型,输出%d是int型
所以就是把double c = 2.4转换成int c 故=858993459

而d 是float 型 所以直接输出,不转换。
double c =2.4 double d=7.4 是说数字是double 型

所有符号 均需转换成英文标点