C 在Printf下,算术运算优先 #包括 int main() { 浮点数a=5.0; printf(“输出为%.2f”,(7/5)*a+12); }

C 在Printf下,算术运算优先 #包括 int main() { 浮点数a=5.0; printf(“输出为%.2f”,(7/5)*a+12); },c,printf,C,Printf,我以为输出是19.00,但输出是17.00。这怎么可能?。请告诉我输出是如何17.00来的……7/5是1。这是整数除法。之后的所有内容都应该清楚。您的7/5将给出一个整数结果,在本例中为1。如果您想得到1.4,需要更改为7.0/5.0以获得浮点结果,这将更改结果。printf根本不会更改结果。您可以在任何其他上下文中计算它,您将得到相同的结果文本5.0是一个double,但代码试图将该double放入浮点。建议:float a=5.0f(注意后面的f)整数除法删除任何分数。似乎您希望分数是kep

我以为输出是19.00,但输出是17.00。这怎么可能?。请告诉我输出是如何17.00来的……

7/5
是1。这是整数除法。之后的所有内容都应该清楚。

您的7/5将给出一个整数结果,在本例中为1。如果您想得到1.4,需要更改为7.0/5.0以获得浮点结果,这将更改结果。

printf
根本不会更改结果。您可以在任何其他上下文中计算它,您将得到相同的结果文本
5.0
是一个
double
,但代码试图将该double放入浮点。建议:
float a=5.0f
(注意后面的
f
)整数除法删除任何分数。似乎您希望分数是keptDetail:“更改为7.0/5.0”将提供一个
double
结果,而不是float-但方法是合理的。
#include<stdio.h> 
int main() 
{
    float a=5.0;
    printf("The Output is %.2f",(7/5)*a+12);
 }