C语言中的除法

Division in C language

大家好希望你们一切顺利我是C语言的新手,我只需要问一个基本的问题就是当我在C中除数时像这样:

#include<stdio.h>
main()
{
   float a = 15/4;
   printf("%.2f", a);
}

除法发生了,但答案以 3.00 的形式出现(这是不正确的,它没有计算余数) 但是当我这样编程时:

#include<stdio.h>
main()
{
   float a = 15;
   float b = 4;
   float res = a/b;
   printf("%.2f", res);
}

这个方法给了我正确的答案。所以我想问一下差异背后的原因 b/w 这两个程序为什么第一种方法不起作用,为什么第二种方法起作用?

在这个表达式中

15/4

这两个操作数都是整数类型(更准确地说是 int 类型)。所以进行整数运算。

如果至少有一个操作数是浮点类型(float 或 double),例如

15/4.0

15/4.0f

则结果将是一个浮点数(在类型double的第一个表达式和类型float的第二个表达式中)

并且在这个表达式中

a/b

两个操作数都是浮点类型(类型float)。所以结果也是一个浮点数。

当您将变量声明为浮动时,您会自动转换他从等式中获得的值。 例如: Float a = 2/4 这就像写 float a = float(equation)。 小心, 奥里