这里我有一些简单的代码,用于计算给定距离和时间的速度。
因为我们有一个除法,所以需要一个浮点变量,但是在下面的程序中,它不会正确显示。

#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;

08-16 10:43