如何在c中划分2个整数?
How to divide 2 int in c?
想除以 2 个数字并得到这样的结果:
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);
收到的输出是:1
原因是您使用的变量类型,即整数 (int
)
每当使用整数存储输出时,结果将存储为整数而不是小数值。
为了存储小数的结果,C语言提供了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);
收到的输出:1.5
所以,我认为这将有助于您理解这个概念。
记住:当您使用float
时,访问说明符是%f
。你需要像我一样把你的答案转换成float
,然后才会反映出答案。
为了避免 float 中的类型转换,您可以直接使用带有 %f 标志的 scanf。
float 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);
在C中,只显示int类型的数字。 5/2 给出了一个浮点型数字。所以,编译器只用整数值编译它。
想除以 2 个数字并得到这样的结果:
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);
收到的输出是:1
原因是您使用的变量类型,即整数 (int
)
每当使用整数存储输出时,结果将存储为整数而不是小数值。
为了存储小数的结果,C语言提供了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);
收到的输出:1.5
所以,我认为这将有助于您理解这个概念。
记住:当您使用float
时,访问说明符是%f
。你需要像我一样把你的答案转换成float
,然后才会反映出答案。
为了避免 float 中的类型转换,您可以直接使用带有 %f 标志的 scanf。
float 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);
在C中,只显示int类型的数字。 5/2 给出了一个浮点型数字。所以,编译器只用整数值编译它。