C程序中的转换不正确?

时间:2014-03-31 14:37:33

标签: c

我创建了这个程序,它将里程转换为km,但是当我将它与我的Phone的结果进行比较时,答案是错误的。但是在节目中一切都很好。

int main(void) {

char i;
float km, miles;

do {
    printf("Enter Distance in Miles: "); scanf("%f", &miles);
    km = miles * 1.906;

    printf("Distance in KM is: %.2f \n", km);

    printf("Enter Y/y to continue or any other key to stop."); scanf(" %c", &i);
}
while( i == 'y' || i == 'Y' );
}

2 个答案:

答案 0 :(得分:7)

您的转换系数错误:1英里处有1.609公里。

更准确地说,1英尺是0.3048米(根据定义),所以5280英尺(1英里)是(5280 * 0.3048 / 1000)= 1.609344公里。

答案 1 :(得分:5)

你的公式错了,正确的是:

km = miles * 1.609