2014-09-06 686 views
-1
#include <cstdio> 
#include <iostream> 
#include <iomanip> 
using namespace std; 
int main() 

{ 
double cen, inch, feet; 
double cen1, feet1; 
feet1=cen1/2.54/12; 
cin >> cen1; 
printf("%.1f",cen1," centimeters is ",double(feet1)," feet ",(float(feet1)-int(feet1)))*12,"  ` inches."; 
} 

现在,由于某些原因,我一直在为printf部分获取错误,因为太多的参数并没有使用操作数“,”。我的主要问题是我不知道如何在printf中设置这些东西,这样我就可以控制何时取消小数位以及剩下多少位。提前致谢。厘米到英尺和英寸转换

+0

不要采取错误的方式,但请阅读关于编程的书/课程。至于代码'printf(“%。1f厘米是:%d feet%5.4f inches”,cen1,int(feet1),(float(feet1)-int(feet1)))* 12);' – DOOM 2014-09-06 03:48:35

回答

1

这不是printf接受它的参数。第一个参数是带格式代码的格式字符串,然后是格式代码的参数。它不需要参数列表并将它们组合在一起。

你所寻找的是:

printf("%.1f centimeters is %i feet %.1f inches", cen1, (int)feet1, (feet1-int(feet1))*12); 
+0

当我使用你的代码行,我得到了333.3厘米-2147483648英尺6585518225804386000000000000000.0英寸。有没有什么办法解决这一问题? – bobtheboy 2014-09-06 03:53:18

+0

@SeanChen使用'double'而不是'float'。 – 2014-09-06 04:00:40

+0

@SeanChen - 我在我的'printf'中错过了一组括号我已经更新了答案。但是你也需要交换'feet1 = cen1/2.54/12;'和 'cin >> cen1;'这两行。在用户输入之前,您无法计算一个值。 – shf301 2014-09-06 04:00:52

0

我使用C++,但是你可能有错误的地方你的括号。尝试:

printf("%.1f",cen1," centimeters is ",double(feet1)," feet ",(float(feet1)-int(feet1))*12,"  ` inches."); 

我不确定这是否能解决您的问题,但我相信这是一个可能导致它的错误。

相关问题