懂C语言的进来
#include<stdio.h>void main()
{
int a;
long b;
float c;
double d;
a=b=c=d=100/3;
printf("a=%d\tb=%d\tc=%f\td=%lf\n",a,b,c,d);
a=b=c=d=(double)(10000/3);
printf("a=%d\tb=%f\tc=%lf\td=%lf\n",a,b,c,d);
}
结果为a=33 b=33 c=33.000000 d=33.000000
a=3333 b=0.00000 c=0.000000 d=0.000000
为什么后面是b.c.d都是等于0帮我解析一下呀 你知道,为什么吗?,因为,各个数字的类型都不一致,整形,长整形,单精度浮点数,双精度浮点数,之间转换,必须写清楚怎么转化,而你
“a=b=c=d=100/3;”
和a=b=c=d=(double)(10000/3);
之间的类型明显不一致,你想还有结果,我想应该是这样 #include<stdio.h>
void main()
{
int a;
long b;
float c;
double d;
d=c=b=a=100/3;
printf("a=%d\tb=%movictorymo ld\tc=%f\td=%lf\n",a,b,c,d);
a=b=c=d=(double)(10000/3);
printf("a=%d\tb=%movictorymo ld\tc=%lf\td=%lf\n",a,b,c,d);
}
注意movictorymo
从第一个输出你的类型就与你定义的类型不符 因为你前面的错了而导致后面一起错
只是我不知道你的第一个“printf”c和d怎么会有结果
反正我运行是没有 这么间单
!!!!!!!!!!!!
不过我不懂
页:
[1]