初学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各是什么意思 还有书上写的这个符号(;去掉上面的点,留下面的小逗号怎么打,不是逗号吧?看起来就像一个小点,)
分我有,清楚点,给加分谢谢
一楼的大哥,这是书上的例子,我原名写上来的。我只是不明白答案怎么算出来。有具体数学式吗?
#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 型
所有符号 均需转换成英文标点