找回密码
 入驻
搜索
查看: 283|回复: 4

懂C语言的进来

[复制链接]
发表于 2008-3-26 09:36:25 | 显示全部楼层 |阅读模式
#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帮我解析一下呀
发表于 2008-3-26 10:40:43 | 显示全部楼层
你知道,为什么吗?,因为,各个数字的类型都不一致,整形,长整形,单精度浮点数,双精度浮点数,之间转换,必须写清楚怎么转化,而你
“a=b=c=d=100/3;”
和a=b=c=d=(double)(10000/3);
之间的类型明显不一致,你想还有结果,我想应该是这样
回复

使用道具 举报

发表于 2008-3-26 12:16:18 | 显示全部楼层
#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
从第一个输出你的类型就与你定义的类型不符
回复

使用道具 举报

发表于 2008-3-26 12:19:46 | 显示全部楼层
因为你前面的错了而导致后面一起错
只是我不知道你的第一个“printf”c和d怎么会有结果
反正我运行是没有
回复

使用道具 举报

发表于 2008-4-6 16:19:56 | 显示全部楼层
这么间单
!!!!!!!!!!!!
不过我不懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 入驻

本版积分规则

QQ|Archiver|手机版|小黑屋|思明论坛

GMT+8, 2024-11-22 17:08 , Processed in 0.010685 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表