编译通过,可是结果不对,哪里错了?

 我来答 举报
喵喵乱舞
2017-03-24 · 超过14用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:27.1万
展开全部
int c=(a+b/12)*0.3048;这句开始出错了。
首先结果包含小数,c的类型应该为浮点型float;
第二,b/12这是两个整形数的运算,结果直接去掉小数只保留整数部分仍为整形,而b永远小于12,结果永远为0,相当于你舍去了英寸部分,可以改为b*1.0/12或b/12.0,这样所有优先级的运算均因有浮点型参与而保持结果为浮点型;
第三,在这样改变之后,结果输出时,格式应该为%f,以浮点数形式输出。
最终应改为:
float c=(a+b*1.0/12)*0.3048;
printf("%f。",c);
GTA小鸡
高粉答主

2017-03-24 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
所有int型改成float型,用%f输入输出即可
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论(3) 举报 收起
阳光的雷咩咩
2017-03-24 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7884万
展开全部
把12写成12.0试试?
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式