首页 > 解决方案 > 程序输出不正确

问题描述

当我进入 1 英里时,我的程序没有正确输出

#include <stdio.h>

int main(void)
{
int kilometers;

int miles;

printf("\n");
printf("Please enter the distance in miles: ");
scanf("%d", &miles);
printf("\n");

kilometers = 1.52 * miles;

printf("%d miles is equal to ", miles);

printf("%d kilometers", kilometers);
printf("\n\n");

return 0;

}

当我输入 1 英里时,它应该输出到 1.52 公里,但给了我 1 公里

标签: c

解决方案


如评论中所述,您使用的是int代替floator double,因此您将无法获得所需的精度。此外,英里到公里的转换也不正确;1.60934每英里都有1公里。

#include <stdio.h>

int main(void) {

double kilometers;
double miles;

printf("\nPlease enter the distance in miles: ");
scanf("%lf", &miles);
printf("\n");

kilometers = 1.60934 * miles;

printf("%.2lf miles is equal to ", miles);
printf("%.2lf kilometers\n\n", kilometers);

return 0;

}

推荐阅读