c语言中的十进制数

c语言中的十进制数,c,decimal,printf,scanf,C,Decimal,Printf,Scanf,我只是问了一个问题,但无法得到我想要的,也无法编辑和回复,因为它太长了。我的问题是相同的,这是与这个问题的联系 更改: scanf("%d",&b); printf("%d lbs is %d kgs.",b,c); 致: 您将b声明为float,并将输入作为十进制&之后将float b和c都打印为十进制?请学习一本书Detial&Detial for C/C++是一本很棒的书。错误在于,scanf和printf的格式说明符中的%d都表示十进制,因此在scanf的情况下它需要一个in

我只是问了一个问题,但无法得到我想要的,也无法编辑和回复,因为它太长了。我的问题是相同的,这是与这个问题的联系

更改:

scanf("%d",&b);

printf("%d lbs is %d kgs.",b,c);
致:

您将b声明为float,并将输入作为十进制&之后将float b和c都打印为十进制?请学习一本书Detial&Detial for C/C++是一本很棒的书。

错误在于,scanf和printf的格式说明符中的%d都表示十进制,因此在scanf的情况下它需要一个int,一个指向int的指针

因为您将b和c声明为浮点,所以在行中%d

scanf("%d",&b);

printf("%d lbs is %d kgs.",b,c);
应分别更改为%f

一个小建议:用double代替float。它提供更高的精度,在许多机器上性能更好。缺点是它比float占用更多的空间,但在大多数情况下这不是问题


如果使用double,您应该在printf中使用%f,在scanf中使用%lf。

为什么我不能解释我的问题?好的,但检查a=1,那么代码应该正常工作?但事实并非如此!当A=2时,请不要考虑其他部分,只要检查A=1。@ BerkDemir,您需要对您的问题更加具体,如输入、输出和预期输出。请不要考虑在A= 2时,如果部分是A1=1i,不要看到任何错误。此外,如果你考虑的话。避免关闭cmd窗口。`作为注释。如果是,请将其删除或更改为/*以避免关闭cmd窗口*/`。除此之外,我看不出有什么问题。定义你的问题
scanf("%f",&b);

printf("%f lbs is %f kgs.",b,c);
scanf("%d",&b);

printf("%d lbs is %d kgs.",b,c);