这里我有一些简单的代码,用于计算给定距离和时间的速度。
因为我们有一个除法,所以需要一个浮点变量,但是在下面的程序中,它不会正确显示。
#include <stdio.h>
#include <conio.h>
int NewDR=0;
float NewSR=0;
int NewTR=0;
int main()
{
printf("What is your new distance?");
scanf("%d",&NewDR);
printf("What is your new time?");
scanf("%d",&NewTR);
//NewSR = NewDR/NewTR;
NewSR = (float)NewDR/(float)NewTR; //-Fix is here, thanks
printf("Speed: %.2f",NewSR);
getch();
}
输入:
Distance: 20
Time: 3
预期产量:
Speed = 6.67
实际产量:
Speed = 6.00
最佳答案
在NewDR/NewTR
中,由于两个操作数都是整数,因此执行整数除法,产生一个整数(在您的情况下,是20/3=6),然后分配给NEWSR
。对于执行浮点除法,只需将任何一个变量转换为float
即可,如下所示:
NewSR =(float) NewDR/NewTR;