C语言问题---这个单位换算程序运行,结果是0.000000,用的是float。求解。

部分代码(出错部分)switch(z){case1:{floatÅ,um,cm,m,km,n_mile,cun,chi,inch,ft,mile,yard,AU... 部分代码(出错部分)
switch(z)
{
case 1:{
float Å,um,cm,m,km,n_mile,cun,chi,inch,ft,mile,yard,AU,ly,pc;
int a;
{
printf("===============================================================================\n");
printf(" 埃 微米 厘米 米 千米 海里 寸 尺 英寸 英尺 码 英里 天文单位 光年 秒差距 \n");
printf(" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \n");
printf("===============================================================================\n");
printf("**************************注:以上单位将转换为其它常用单位**************************\n");
printf("Select:");
}
scanf("%d",&a);
switch(a)
{
case 1:{
printf("输入长度(埃/Å):");
scanf("%f",&Å);
{
um=1/10000*Å;
cm=1/10000*um;
m=1/100*cm;
inch=cm/2.54;
cun=(3/10)*cm;
ft=inch/12;
chi=cun/10;
}
printf("%fÅ = %fμm = %fcm = %fm = %f寸 = %f尺 = %fin. = %fft",Å,um,cm,m,cun,chi,inch,ft);
break;
}//埃--->其它

=================================================================================
结果:
输入长度(埃/Å):1209401280481024

1209401318834176.000000Å = 0.000000μm = 0.000000cm = 0.000000m = 0.000000寸 = 0.000000尺
PS:
输入长度(厘米/cm):67

67.000000cm = 6700000000.000000Å = 670000.000000μm = 0.000000m = 0.000000寸 = 0.000000尺 = 26.377953in. = 2.198163ft
比输入长度单位大的就输出0.000000,小的正常。
展开
 我来答
白雲深處是我家
2015-06-23 · TA获得超过381个赞
知道小有建树答主
回答量:203
采纳率:66%
帮助的人:240万
展开全部
{
um=Å/10000;
 cm=um/10000;
 m=cm/100;
 inch=cm/2.54;
 cun=cm*3/10;
 ft=inch/12;
 chi=cun/10;
 }
这样就对了。原因就在先后顺序上。或者你把1/10000这种写法改为1.0f/10000 * XXX
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式