我想要将两个数字相除并得到类似于以下结果的答案:
5 / 2 = 2.50
但是代码只输出了 2。
我不知道哪里出错了。
这是我的代码:
int a;
int b;
int c;
printf("First num\n");
scanf("%d", &a);
printf("Second num\n");
scanf("%d", &b);
c = a / b;
printf("%d", c);
你需要一个 double
变量来存储结果。 int
只能存储整数。此外,在执行除法之前,你还需要对其他变量进行类型转换。
可以像这样做
double c;
.
.
.
c = (double)a / (double)b;
printf("%f", c);
注意:
printf()
语句中不需要使用 &
符号。
你需要使用 float
或 double
变量,而不是 int
(整数)变量。另外请注意,两个整数之间的除法会得到一个整数结果,而一个 float
/double
和一个整数之间的除法会得到一个浮点数结果。这是因为 C 会将该整数隐式地转换为 float
。
例如:
5/2 = 2
5/2.0f = 2.5f
.0f
,这实际上意味着我们正在使用浮点数进行除法运算。'/'符号表示除法。在C语言中,如果你用一个整数除以另一个整数并将结果存储在一个整数中,那么输出的答案也将是一个整数。例如
int a = 3, b = 2, c = 0;
c = a/b; // That is c = 3/2;
printf("%d", c);
int
)类型的变量。float
、double
、long float
和long double
。int a = 3, b = 2;
float c = 0.0;
c = (float)a/b; // That is c = 3/2;
printf("%.1f", c);
float
时,访问说明符是%f
。 您需要将答案转换为float
,就像我所做的那样,然后答案将反映出来。stdout
,或者尝试自己编译和运行代码)。 - user3528438float a;
float b;
float c;
printf("First number\n");
scanf("%f", &a);
printf("Second number\n");
scanf("%f", &b);
c = a / b;
printf("%f", c);
int
意味着“整数”,你知道的... - Eugene Sh.